冒泡排序 python实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lens___/article/details/84197810

冒泡排序的思想:

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

比如有五个数: 12, 35, 99, 18, 76, 从大到小排序, 对相邻的两位进行比较

  • 第一趟:
  • 第一次比较: 35, 12, 99, 18, 76
  • 第二次比较: 35, 99, 12, 18, 76
  • 第三次比较: 35, 99, 18, 12, 76
  • 第四次比较: 35, 99, 18, 76, 12

经过第一趟比较后, 五个数中最小的数已经在最后面了, 接下来只比较前四个数, 依次类推

  • 第二趟
    99, 35, 76, 18, 12
  • 第三趟
    99, 76, 35, 18, 12
  • 第四趟
    99, 76, 35, 18, 12
    比较完成

实现思路 

使用双重for循环,内层变量为j, 外层为i,在内层循环中不断的比较相邻的两个值(j, j+1)的大小,如果j+1的值大于j的值,交换两者位置,每循环一次,外层的i增加1,等到i等于n-1的时候,结束循环 

nums = [5,7,45,54,93,36,1]

def bubble_Sort(nums):
    for i in range(len(nums)-1):    # 这个循环负责设置冒泡排序进行的次数
        for j in range(len(nums)-i-1):  # j为列表下标
            if nums[j] > nums[j+1]:
                nums[j], nums[j+1] = nums[j+1], nums[j]
    return nums

print(bubble_Sort(nums))
[1, 5, 7, 36, 45, 54, 93]

参考文章:

python 冒泡排序

猜你喜欢

转载自blog.csdn.net/lens___/article/details/84197810
今日推荐