欢迎来到天天文库
浏览记录
ID:50777253
大小:213.39 KB
页数:9页
时间:2020-03-14
《高中VB选择排序算法.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、选择排序算法--程序实现(1)对冒泡排序算法的改进,交换次数少,效率高(2)在参加排序的所有数组元素中找出最小/最大数据的元素(3)使它与未排序元素中第一个元素相互交换位置(4)以此类推,直到所有元素成为一个有序的序列选择排序的原理i=1k=1forj=2to4ifa(k)>a(j)nextjifk<>ithen‘通过第一遍的加工,找出最小/最大值位置,查看)t=a(k):a(k)=a(i):a(i)=t‘不是,则进行交换,即将最小/最大值最第一个值交换位置Endif第一遍排序(升序为例)22352918‘第一遍加工‘将未排序所有元素中的第一个元素看成最小/最大‘从第二个开始‘找
2、出比第一个元素大/小的数‘找到以后把位置给kthenk=j‘通过第一遍的加工,找出最小/最大值位置,查看是不是处在第一个元素位置‘不是,则进行交换,即将最小/最大值最第一个值交换位置i=2k=2forj=3to4ifa(k)>a(j)nextjifk<>ithen‘通过第一遍的加工,找出最小/最大值位置,查看)t=a(k):a(k)=a(i):a(i)=t‘不是,则进行交换,即将最小/最大值最第一个值交换位置Endif第二遍排序(升序为例)‘第二遍加工‘将未排序所有元素中的第一个元素看成最小/最大‘从第三个开始‘找出比第一个元素大/小的数‘找到以后把位置给kthenk=j‘通过第
3、一遍的加工,找出最小/最大值位置,查看是不是处在第一个元素位置‘不是,则进行交换,即将最小/最大值最第一个值交换位置18352922i=3k=3forj=4to4ifa(k)>a(j)nextjifk<>ithen‘通过第一遍的加工,找出最小/最大值位置,查看)t=a(k):a(k)=a(i):a(i)=t‘不是,则进行交换,即将最小/最大值最第一个值交换位置Endif第三遍排序(升序为例)‘第三遍加工‘将未排序所有元素中的第一个元素看成最小/最大‘从第四个开始‘找出比第一个元素大/小的数‘找到以后把位置给kthenk=j‘通过第一遍的加工,找出最小/最大值位置,查看是不是处在第
4、一个元素位置‘不是,则进行交换,即将最小/最大值最第一个值交换位置18222935Fori=1ton-1k=iforj=i+1tonifa(k)>a(j)thenk=jnextjifi<>kthent=a(i):a(i)=a(k):a(k)=tEndifNexti对数组d中的n个数进行降序排序,其方框处程序代码如何修改思考:在i到n中定位最小数的位置如果k<>i,则a(k)与a(i)交换对n个数进行升序排序,其程序代码如下:巩固练习Fori=1to3h=1Forj=i+1To8Ifa(h)hThent=a(i):a(i)=a(h):a(
5、h)=tEndIfNexti1、经过以下程序的运行,原始数组a(1)到a(8)的数据依次为“2,5,20,9,10,8,11,1”经过该程序段“加工”后,得到的数据排序结果是2、下列VB程序段是选择排序程序的主要部分。其中虚线框内代码用于寻找数据元素d(i)到d(n)的最小值。……Fori=1Ton-1k=IForj=i+1TonIfd(j)kThent=d(i):d(i)=d(k):d(k)=tNexti……框内代码运行结速时,保存最小值的数组元素一定是()A.d(n)B.d(j)C.d(i)D.d(k)D巩固练习再见
此文档下载收益归作者所有