python之冒泡排序简单算法

方法1:
def bubbleSort(arr):#定义函数
qiu = len(arr)
# 遍历所有数组元素
for i in range(qiu):
# 最后一个元素已经存在,所以qiu-i-1
for j in range(0, qiu - i - 1)
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]#交换顺序
arr = [52, 18, 96, 58, 252, 23, 9,8,18] #数组
bubbleSort(arr)#调用函数
print(f'排序后的数组:{arr}')
print("排序后的数组:")
for i in range(len(arr)):
print("%d" % arr[i])
# 方式二
arr = [64, 34, 25, 12, 22, 11, 90]
print(len(arr))
for i in range(len(arr)):
for j in range(0,len(arr)-i):
if arr[j]>arr[j+1]:
arr[j],arr[j+1]=arr[j+1],arr[j]
print(arr)
num = 1
for i in range(len(arr)):
print(f'第{num}个冒泡数字为:{arr[i]}')
num += 1

 # 其他推导方式

# 列表[21,32,43,23,65,78,23,1,199,-21] 进行升序排序
# 思路一 找到最小的值放到新的列表后删除这个元素,在继续寻找最小的找出来放到新的列表中再删除该元素
list1 = [21, 32, 43, 23, 65, 78, 23, 1, 199, -21]
list_new = []
for i in range(len(list1)):
min_value = min(list1)
list_new.append(list1.pop(list1.index(min_value)))
print(list_new)
# 冒泡排序
# 把相邻的两个数相比较,前一个比后一个,就交换
list2 = [21, 32, 43, 23, -21, 34]
# 第一次交换
if list2[0] < list2[1]:
list2[0], list2[1] = list2[1], list2[0]
print(list2)
# 第二次交换
if list2[1] < list2[2]:
list2[1], list2[2] = list2[2], list2[1]
print(list2)
# 第三次 ...
# 使用循环代替
list2 = [21, 32, 43, 23, -21, 34]
for i in range(len(list2) - 1):
if list2[i] < list2[i + 1]:
list2[i], list2[i + 1] = list2[i + 1], list2[i]
# print(list2)
# 第二次循环比较
for i in range(len(list2) - 2):
if list2[i] < list2[i + 1]:
list2[i], list2[i + 1] = list2[i + 1], list2[i]
# print(list2)
# 第三次循环比较
for i in range(len(list2) - 3):
if list2[i] < list2[i + 1]:
list2[i], list2[i + 1] = list2[i + 1], list2[i]
# print(list2)
# 第四次循环比较
for i in range(len(list2) - 3):
if list2[i] < list2[i + 1]:
list2[i], list2[i + 1] = list2[i + 1], list2[i]
# print(list2)
# 最终推导循环且套
list2 = [21, 32, 43, 23, -21, 34, -100, 200, 300]
for j in range(1, len(list2)): # 控制循环次数
for i in range(len(list2) - j): # -j 由上方循环推出
if list2[i] < list2[i + 1]:
list2[i], list2[i + 1] = list2[i + 1], list2[i]
print(list2)