冒泡排序算法原理
一组数字例如:
num=[1, 4, 6, 7, 9, 9, 10, 13, 14, 16, 19, 2]
步骤
- 两个数字比较大小,如果第一个大于第二个,则交换两个数字的位置,
- 第二个数字与第三个数字比较大小,如果第二个大于第三个则交换位置。
- 第三个与第四个比较,以此类推,直到循环完这个列表长度,就是len(num)-1次。
这样一整轮下列后最大的数字排在最后一列了。
=num=[1, 4, 6, 7, 9, 9, 10, 13, 14, 16 , 2, 19]
再重复以上步骤,前面第二大的数字排在倒数第二位置了
排过的位置下一次循环就可以省略了只循环len(num)-i次,当然也可以继续循环len(num)-1次
## 练习排序算法 202609-13,自动生成一个50位的数字列表,按从小到大排序
## 第一轮先把一个数字挨个儿与后面比较,如果小就交换位置,
## 每个数字都重复一轮
## 先生成一个随机的列表
import random
def paixu():
num_list=[]
for i in range(0,50):
num_list.append(random.randint(1,51))#
print('random list :',num_list)
#排序算法:
num_len=len(num_list)
for x in range(0,num_len):
for i in range(0,num_len-1-x):
if num_list[i]>num_list[i+1]:
num_list[i],num_list[i+1]=num_list[i+1],num_list[i]
print('第',x,'轮后的列表',num_list)
print('After sort: ',num_list)
if __name__=='__main__':
paixu()
```