冒泡排序程序代码:Fori=1Ton-1Forj=nToi+1Step-1Ifd(j)<d(j-1)Then()EndIfNextjNextik=d(j):d(j)=d(j-1):d(j-1)=kFori=1Tonum-1‘n个数,排序n-1次Min=iForj=i+1Tonum'如果找到更小的,用min记住它的编号Ifd(Min)>d(j)ThenMin=jNextjIfMin<>iThen'如果最小的数所在的位置不是i,则交换k=d(i):d(i)=d(Min):d(Min)=kEndIfNexti数组元素的个数选择排序程序代码:,其目标是能以比较少的步聚和较短的时间找到所需的对象顺序查找的基本思想是从第一个数据开始,按数据的顺序逐个将数据与给定的值进行比较。若某个数据和给定的值相等,则查找成功,找到所查数据的位置;反之,查找不成功。(flash流程图)查找算法顺序查找27363218d(1)d(2)d(3)d(4)输入查找的元素值key=32i=1i=2i=3此时d(i)=key,数组中的第3个位置如果输入查找的元素值key=22i=1i=2i=3i=4i=527363218d(1)d(2)d(3)d(4)此时i等于5,超过数组中元素个数,找不到从数组d的第1个元素d(1)开始,依次判断各元素的值是否与查找键key的值相等。顺序查找的流程图开始i1d(i)=key?i<=n?i i+1未找到,输出结果:0找到,输出结果:mand6_Click()'顺序查找Key=Val()Fori=1TonumIfd(i)=="在数组的"+Str(i)+"位置中"ExitForEndIfNextIfi=num+="在数组中没有找到"+Str(Key)EndIfEndSub对分查找的基本思想对分查找的前提是数据已经有序(以递增为例),然后把待查找的数据与数组中间位置的数比较,如果比中间位置的数大,在数组的后半部分继续查找,否则在数组的前半部分查找,继续对分查找,直到找到待查找的数在数组中的位置或数组已无法对分猜数游戏Flash流程图10151718222735454852656772859798123456789101**********下标元素数组d(i):I=1J=16M=fix((i+j)/2)=8第1次比较:Key>d(m)查找范围应该变成d(9)~d(16)Key=52我们用变量I和J记录所要查找范围的起始和终止位置(1)过程:10151718222735454852656772859798123456789101**********下标元素数组d():I=9J=16M=fix((i+j)/2)=12第2次比较:Key<d(m)查找范围应该变成d(9)~d(11)Key=52我们用变量I和J记录所要查找范围的起始和终止位置
查找算法课件 来自淘豆网m.daumloan.com转载请标明出处.