选择法排序的基本思想及VB程序实现.docx

上传人:scccc 文档编号:13077685 上传时间:2021-12-13 格式:DOCX 页数:3 大小:11.59KB
返回 下载 相关 举报
选择法排序的基本思想及VB程序实现.docx_第1页
第1页 / 共3页
选择法排序的基本思想及VB程序实现.docx_第2页
第2页 / 共3页
选择法排序的基本思想及VB程序实现.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《选择法排序的基本思想及VB程序实现.docx》由会员分享,可在线阅读,更多相关《选择法排序的基本思想及VB程序实现.docx(3页珍藏版)》请在三一文库上搜索。

1、Zss_2010选择法排序的基本思想算法描述:每次在若干个无序数中找出最小数(升序排列),并放在无序数中的第一个位置。假定有下标为0n的n+1个数的序列,要求按升序排列,实现的步骤如下:(1) 从第0个元素开始在n+1个数中找出最小数,并与第0个元素交换位置。(2) 从第1个元素开始在剩余的 n个数中找出最小数,并与第 1个元素交换位置。(3) 重复依次从3、4.n+1个元素中找最小、 交换直到倒数第 2个元素与最后1个元素比 较后结束。算法剖析:从n+1个元素中取出最小的元素,与 a(0)交换,a(0)不动a(0) a(1) a(2) a(n-2) a(n-1) a(n),共做 n 次比较(

2、2) 从n个元素中取出最小的元素,与a(1)交换,a(1)不动a(1) a(2) a(n-2) a(n-1) a(n),共做 n-1 次比较(3) 从n 2个元素中取出最小的元素,与 a(2)交换,a(2)不动a(2) a(n-2) a(n-1) a(n),共做 n-2 次比较(n)从2个元素中取出最小的元素,与a(n-1)交换,a(n-1)不动a(n-1)a(n),共做1次比较共进行了 n轮比较显然这里涉及两个主要变量,比较轮数(可以用每一轮第一个元素的序 数表示)和比较次数(可以用每一轮除第一个元素外元素的序数范围表 示),设从第i个元素开始找,比较次数为 j,则有:(第 1 轮)i=0

3、: j=1 to n j=i+1 to na(0) a(1) a(2) a(n-2) a(n-1) a(n) , n+1 选 1,共做 n 次比较(第 2 轮)i=1 : j=2 to n j=i+1 to na(1) a(2) a(n-2) a(n-1) a(n) , n 选 1, 共做 n-1 次比较(第 3 轮)i=2 : j=3 to n j=i+1 to na(2) a(3).a(n-1) a(n) , n-1 选 1,共做 n-2 次比较(第 n 轮)i=n-1 : j=n to nj=i+1 to na(n-1)a(n), 2选1, 共做1次比较共进行了 n轮比较找出数组中a(i

4、)a(n)的最小值,放到a(i)中(交换到)'(1)寻找 a(i) a(i+1) a(i+2)a(n-2) a(n-1) a(n)中的最小值'a(j) . a(j+1)a(n-2) a(n-1) a(n)保存i的值,想一下,下边比较为什么不能直接用i把a(i)作为参照物开始寻找,每找到一个更小的元素,就把它的位 置(即数组元素下标或者在数组中的序号)记下来。imin=ifor j=i+1 to nif a(imin)>a(j) thenimin=jend ifnext j得到最小值元素的位置(即数组元素下标或者在数组中的序号)'(2)放最小数到a(i),交换t=a

5、(i)a(i)=a(imin)a(imin)=t把a(i)作为参照物,i从数组下界开始一直到上界-1,即倒数第二个无素,每取一个i值就进行一轮比较For i=0 to n-1imin=ifor j=i+1 to nif a(imin)>a(j) thenimin=jend ifnext j得到最小值元素的序号放最小数到a(i),交换t=a(i)a(i)=a(imin)a(imin)=tnext i如果不知道数组有多少个元素,可以用Lbound(a)和Ubound(a)得到m= Lbound(a):n= Ubound(a)For i=m to n-1imin=ifor j=i+1 to nif a(imin)<a(j) thenimin=jend ifnext j得到最小值元素的序号放最小数到a(i)中,交换t=a(i)a(i)=a(imin)a(imin)=tnext i3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1