选择排序之算法实现PPT精选文档_第1页
选择排序之算法实现PPT精选文档_第2页
选择排序之算法实现PPT精选文档_第3页
选择排序之算法实现PPT精选文档_第4页
选择排序之算法实现PPT精选文档_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,选择法排序 之算法实现,2,选择排序的过程: 对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置,接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较如果后面的元素比他要小则用变量k记住它在数组中的位置(下标),等到循环结束的时候,我们应该找到了最小的那个数的下标了,然后进行判断,如果这个元素的下标不是第一个元素的下标,就让第一个元素跟他交换一下值,这样就找到整个数组中最小的数了。然后找到数组中第二小的数,让他跟数组中第二个元素交换一下值,以此类推。,3,21,25,49,25*,16,08,1 2 3 4

2、 5 6,21,25*,i = 1,49,25,16,25,16,08,49,08,25*,49,21,i = 2,i = 3,08,16,25*,25,21,初始,最小者 08 交换21,08,最小者 16 交换25,16,最小者 21 交换49,21,4,49,25*,1 2 3 4 5 6,25*,i = 5,25,16,08,49,25*,49,21,结果,i = 4,08,16,25,21,最小者 25* 无交换,最小者 25 无交换,25,21,16,08,各趟排序后的结果,5,1、在选择排序过程中,经过一遍排序“加工”后,数组元素a(l)到a(7)的数据依次为“10,41,75,

3、12,63,11,85”。则下一遍排序“加工”后数组元素a(l)到a(7)的数据依次是 A. 10, 11, 41, 75, 12, 63, 85 B. 10, 11, 75, 12, 63, 41, 85 C. 10, 11, 12, 75, 63, 41, 85 D. 10, 11, 12, 41, 63, 75, 85,答案:B,6,2、选择排序:在经过一遍排序“加工”后,数组元素a(1)到a(5)的数据依次为“28,70, 57, 53,30”。则 下一遍排序“加工”后数组元素a(1)到a(5)的数据应该是 A. 28, 30,70,53,57 B. 28, 30,53,57,70 C

4、. 28,30,57,53,70 D. 28, 30,53,70, 57,答案:C,7,第1步:找出n个数据( a(1)至a(n) )中的 最小数,并与第1个数据a(1)交 换位置;,选择法排序,第2步:在剩下的n-1个数据(a(2)至a(n) 中找出最小数,并与第2个数据 a(2)交换位置;,对包含n个数据的数组按从小到大排列,8,第i步:,在剩下的n-i+1个数据(a(i)至a(n)中找出最小数,并与第 i 个数据a(i)交换位置;,第1步:找出n个数据( a(1)至a(n) )中的 最小数,并与第1个数据a(1)交 换位置;,选择法排序,对包含n个数据的数组按从小到大排列,i = 1 ?

5、,n-1,9,选择法排序的基本算法,找出a(i)至a(n)中的最小值,将最小值与第i个数据a(i)交换位置,10,选择法排序的基本算法,找出a(i)至a(n)中的最小值,将最小值与第i个数据a(i)交换位置,11,一、随机生成10个整数, 请用选择法对其进行排序。,Private Sub Command1_Click() Dim a(1 To 10) As Integer Dim i As Integer, j As Integer, k As Integer k变量代表是找到的最小数 Print 排序以前的数: For i = 1 To 10 a(i) = Int(100 * Rnd) Pr

6、int a(i); Next i Print For i = 1 To 9 For i=1 to 9是因为数组a只包含10个元素,按选择排序的要求,需要将数组前9个元素分别与后面的元素(从i+1起,直到10为止)比较大小 k = i k=i的作用为把a(i)视为最小元素,记录a(i)的数组下标 For j = i + 1 To 10 If a(k) a(j) Then k = j k=j的作用为当a(j)比a(k)小时,记录a(j)的数组下标,k=j记录的是每一轮选择排序过程的最小值的数组下标。 End If Next j t = a(i): a(i) = a(k): a(k) = t Next i Print 排序以后的数: For i = 1 To 10 Print a(i); Next I Print End Sub,12,三、打开VB6.0,新建一个工程,在窗体中添加两个命令按钮,caption分别改为“升序排列”和“降序排列”,添加两个个标签控件。,13,在通用声明对话框对数组进行定义,使其成为窗体级变量: Dim a(1 To 10) As Integer Dim i, j, min, max As Integer 首先产生10个3位整数的随机数在标签中显示。 双击窗体,在Load事件中写入如下代码:,Private Sub Form_Load() Label1.C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论