冒泡排序原理:
其实了解冒泡排序的同学们都知道,冒泡排序的原理特别简单,我根据下面这幅图简要说一下冒泡的排序原理。
大家假设上面的这幅图就是一python中的list形如这样[2,3,1,4],我们那如何将这个list进行冒泡的排序呢?每一次的排序就是一次与相邻的数字进行排序,A与B排序,选出大的放在前面(按最大值排序),如果B比A大,则将A于B进行交换位置,否则不变,第一次排序之后会变成这样。
那么我们的问题来了欧?如何确定冒泡排序的次数呢!其实冒泡排序的次数是有公式的,那么这里我就用文字说明一下吧!
1.比较N个数的大小并排序的话,要比较N-1遍。
2.第一遍比较N-1次,将最大的数放在最后;
3.第二遍比较N-2次,将第二大的数放在了倒数第二的位置
4.依次类推,最后一遍只比较两个数的大小,即一次
也就是说每一次的比较都会把一个最小或者最大的值放在最后(例如上图中第一次排序后将最小的1放在了最后),们将剩下的比较之后的次序用图片绘制出来。
第二次
第三次
已经排序成功
接下来我们就上我们的代码楼!
def BubbleSort(list):
for j in range(len(list)-1):#进行排序的遍数
for i in range(len(list)-j-1):#由于每一次的排序都会在最后排出最小(我们的例子是排序最大值排序),所以需要进行比较的数字依次减少
if list[i]<list[i+1]:#下面就是比较的过程并交换位置
temp=list[i]
list[i]=list[i+1]
list[i+1] = temp
return list
list = [1,2,9,3,4]
print(BubbleSort(list))
写的不好或者不对的地方请多多指教哦!