d(1)27d(2)36d(3)32d(4)18选择排序选择排序算法基本思想在参加排序的所有元素中找出最小(或最大)数据,使它与第一个元素中的数据相互交换位置;然后再在余下的元素中找出最小(或最大)数据,与第二个元素中的数据交换位置以此类推……………………选择排序升序选择举例原始序列d(1)27d(2)36d(3)32d(4)18最终序列d(1)18d(2)27d(3)32d(4)36d(1)27d(2)36d(3)32d(4)18d(1)18d(2)36d(3)32d(4)27d(1)18d(2)27d(3)32d(4)36思维演示第1遍选择算法演示27363218d(1)d(2)d(3)d(4)j=2Min=127363218j=3Min=1j=427363218Min=11836322727363218Min=jj=4第2遍选择18363227d(1)d(2)d(3)d(4)j=3Min=218363227j=3Min=jj=418363227Min=3j=418363227Min=j18273236第3遍选择18273236d(1)d(2)d(3)d(4)j=4Min=318273236程序分析--第1遍选择27363218d(1)d(2)d(3)d(4)j=2Min=127363218j=3Min=1j=427363218Min=11836322727363218Min=jj=4Min=1Forj=2to4Ifd(j)1then交换d(1)和d(Min)18363227d(1)d(2)d(3)d(4)j=3Min=218363227j=3Min=jj=418363227Min=3j=418363227Min=j18273236Min=2Forj=3to4Ifd(j)2then交换d(2)和d(Min)程序分析--第2遍选择18273236d(1)d(2)d(3)d(4)j=4Min=3Min=3Forj=4to4ifd(j)thenMin=jNextjIfMin<>3then交换d(3)和d(min)程序分析--第3遍选择18273236第1遍选择,j从2开始到4分析Min=1Forj=2to4ifd(j)1,交换d(1)和d(Min)Min=2Forj=3to4ifd(j)2then交换d(2)和d(Min)第2遍选择,j从3开始到4第3遍选择,j从4开始到4Min=3Forj=4to4ifd(j)3then交换d(3)和d(Min)用i来表示次数的变化Fori=1To3Min=iForj=i+1To4Ifd(j)iThent=d(i):d(i)=d(Min):d(Min)=tEndIfNexti程序实现Fori=1Ton-1Min=iForj=i+1TonIfd(j)iThent=d(i):d(i)=d(Min):d(Min)=tEndIfNexti课堂小结选择排序算法基本思想在参加排序的所有元素中找出最小(或最大)数据,使它与第一个元素中的数据相互交换位置;然后再在余下的元素中找出最小(或最大)数据,与第二个元素中的数据交换位置以此类推……………………