学习冒泡算法

1 阅读1分钟

冒泡排序算法原理

一组数字例如:

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()
```