标签:
冒泡排序算法的原理如下:(从后往前) 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
冒泡算法初级代码如下:
1 ##冒泡 2 a=[9,2,1,55,33] 3 4 for i in range(len(a)): 5 for j in range(len(a)-1): 6 if a[j] > a[j+1]: 7 middle = a[j] 8 a[j] = a[j+1] 9 a[j+1] = middle 10 else: 11 pass 12 13 print(a)
执行结果如下:
[1, 2, 9, 33, 55]
代码剖析:开始执行:初始列表a=[9,2,1,55,33],第一次外层循环i=0;第一次内层循环j=0;假如a[0]:9 > a[1]:2,交换位置,a[0]:2;a[1]:9,第二次内层循环j=1;假如a[1]:9 > a[2]:1,交换位置,第三次内层循环j=2;假如a[2]:9 > a[3]:55,不成立;pass,第四次内层循环j=3;假如a[3]:55 > a[4]:33,交换位置,内层循环结束,得到结果a[4]==55,拿到第一大的值。第二次外层循环i=1;第一次内存循环j=0;假如a[0]:2 > a[1]:1,交换位置,第二次内层循环j=1;假如a[1]:2 > a[2]:9,不成立,pass,第三次内层循环j=2;假如a[2]:9> a[3]:33,不成立,pass,第四次内层循环j=3;假如a[3]:33 > a[4]:55,不成立,pass,拿到结果a[3] ==33,拿到第二大的值,以此类推。一个一个像冒泡一样拿到最终的列表。
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下:
首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此类推,直到所有元素均排序完毕。
选择排序初级代码如下:
##选择 b = [8,2,1,55,33] num = len(b)-1 for i in range(len(b)): index = 0 for j in range(num): if b[index] > b[j+1]: pass else: index = j+1 middle = b[num] b[num] = b[index] b[index] = middle num -= 1 print(b)
代码剖析:
标签:
原文地址:http://www.cnblogs.com/Caesary/p/5577162.html