定义列表:
q=[4,1,3,2,6,8,7] n=len(q)
插入排序的原理:始终定义第一个元素为有序的,将元素逐个插入到有序排列之中,其特点是要不断的移动数据,空出一个适当的位置,把待插入的元素放到里面去。(所谓插入排序法,就是检查第i个数字,如果i+1个的数字比它大,进行交换)插入排序的函数如下:
for x in range(0,n): for y in range(x+1,n): if q[x]<q[y]: t=q[x] q[x]=q[y] q[y]=t print q
选择排序的原理:每次在无序队列中“选择”出最小值,放到有序队列的最后,并从无序队列中去除该值(具体实现略有区别)。代码如下:
冒泡排序的原理:每次在无序队列里将相邻两个数依次进行比较,将小数调换到前面,逐次比较,直至将最大的数移到最后。最将剩下的N-1个数继续比较,将次大数移至倒数第二位。依此规律,直至比较结束。冒泡代码如下:#升序 for i in range(0,n): min=i for j in range(i+1,n): if q[j]<q[min]: t=q[min] q[min]=q[j] q[j]=t print q#降序 for i in range(0,n): max=i for j in range(i+1,n): if q[j]>q[max]: t=q[max] q[max]=q[j] q[j]=t print q
#冒泡 for i in range(n-1,0,-1): for j in range(0,i): if q[j]<q[j+1]: t=q[j] q[j]=q[j+1] q[j+1]=t print q