当前位置:网站首页>排序1:冒泡排序

排序1:冒泡排序

2022-08-09 09:45:00 用户9955628

思路:依次比较相邻两个元素,小的排在前面,大的排在后面,发现顺序错误就交换两者的前后顺序。

range函数:

range(start,stop,[step]):生成一个可迭代对象
注意点:
setp可以省略,默认为1
左闭右开区间
举例:
range(10) # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(0, 30, 5) # 步长为 5
[0, 5, 10, 15, 20, 25]
range(0, 10, 3) # 步长为 3
[0, 3, 6, 9]
range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
range(0)
[]
range(1, 0)
[]

python3实现:

from typing import List
def bubble_sort(arr: List[int]):
    """
    arr:待排序列表,list中的元素类型为int
    """
    length = len(arr)
    #列表长度为1和0时直接返回
    if length <= 1:
        return
    for i in range(length-1):
        is_made_swap = False
        #设置标志位,如果已经有序,则直接跳出
        for j in range(length-1):
            if arr[j] > arr[j+1]:
                arr[j],arr[j+1] = arr[j+1],arr[j]
                is_made_swap = True
        if not is_made_swap:
            break


if __name__ == '__main__':
     import random
     random.seed(54)
     arr = [random.randint(0,100) for _ in range(10)]
     print("原始数据", arr)
     bubble_sort(arr)
     print("排序后:",arr)


结果:
原始数据 [17, 56, 71, 38, 61, 62, 48, 28, 57, 42]
排序后: [17, 28, 38, 42, 48, 56, 57, 61, 62, 71]
原网站

版权声明
本文为[用户9955628]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/2068457