美文网首页
冒泡排序

冒泡排序

作者: Amica | 来源:发表于2018-07-29 10:30 被阅读6次

算法思想:

每次比较相邻的两个元素,如果顺序错误就交换它们的位置

算法原理:

每趟只能将一个数归位,如果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]

相关文章

网友评论

      本文标题:冒泡排序

      本文链接:https://www.haomeiwen.com/subject/fwkzmftx.html