冒泡排序
2018-07-29 本文已影响6人
Amica
算法思想:
每次比较相邻的两个元素,如果顺序错误就交换它们的位置
算法原理:
每趟只能将一个数归位,如果n个数进行排序,只需将n-1个数归位,也就是说要进行n-1趟操作。
Python实现冒泡排序(由小到大排序)
# 定义函数bubbleSort_1()实现由小到大的排序
def bubbleSort_1(nums):
#设置冒泡排序需要进行的比较次数
for i in range(len(nums)-1):
print("第%d趟"%(i+1))
#j为列的下标
for j in range(len(nums)-i-1):
print("第%d次比较的结果:"%(j+1))
if nums[j]>nums[j+1]:
nums[j],nums[j+1]=nums[j+1],nums[j]
print(nums)
return nums
nums=[12,35,99,18,76]
print("最终输出冒泡排序的结果:",bubbleSort_1(nums)
第1趟
第1次比较的结果:
[12, 35, 99, 18, 76]
第2次比较的结果:
[12, 35, 99, 18, 76]
第3次比较的结果:
[12, 35, 18, 99, 76]
第4次比较的结果:
[12, 35, 18, 76, 99]
第2趟
第1次比较的结果:
[12, 35, 18, 76, 99]
第2次比较的结果:
[12, 18, 35, 76, 99]
第3次比较的结果:
[12, 18, 35, 76, 99]
第3趟
第1次比较的结果:
[12, 18, 35, 76, 99]
第2次比较的结果:
[12, 18, 35, 76, 99]
第4趟
第1次比较的结果:
[12, 18, 35, 76, 99]
最终输出冒泡排序的结果: [12, 18, 35, 76, 99]
Python实现冒泡排序(由大到小排序)
# 定义函数bubbleSort_2()实现由大到小的排序
def bubbleSort_2(nums):
#设置冒泡排序需要进行的比较次数
for i in range(len(nums)-1):
print("第%d趟"%(i+1))
#j为列的下标
for j in range(len(nums)-i-1):
print("第%d次比较的结果:"%(j+1))
if nums[j]<nums[j+1]:
nums[j],nums[j+1]=nums[j+1],nums[j]
print(nums)
return nums
nums=[12,35,99,18,76]
print("最终输出冒泡排序的结果:",bubbleSort_2(nums))
第1趟
第1次比较的结果:
[35, 12, 99, 18, 76]
第2次比较的结果:
[35, 99, 12, 18, 76]
第3次比较的结果:
[35, 99, 18, 12, 76]
第4次比较的结果:
[35, 99, 18, 76, 12]
第2趟
第1次比较的结果:
[99, 35, 18, 76, 12]
第2次比较的结果:
[99, 35, 18, 76, 12]
第3次比较的结果:
[99, 35, 76, 18, 12]
第3趟
第1次比较的结果:
[99, 35, 76, 18, 12]
第2次比较的结果:
[99, 76, 35, 18, 12]
第4趟
第1次比较的结果:
[99, 76, 35, 18, 12]
最终输出冒泡排序的结果: [99, 76, 35, 18, 12]