• python列表排序


    1.使用list内建函数sort排序

    list.sort(key=None,reverse=False)

    l = [2,4,4,1,7,2,5,0]
    
    print(l.sort())
    结果:[0, 1, 2, 2, 4, 4, 5, 7]
    
    l.sort(reverse=True)
    print(l)
    结果:[7, 5, 4, 4, 2, 2, 1, 0]

    2.用序列类型函数sorted(list)进行排序

    l = [2,4,4,1,7,2,5,0]
    print(sorted(l))
    结果:[0, 1, 2, 2, 4, 4, 5, 7]

    注意:sorted和sort区别

    sorted(list)返回一个对象,可以用作表达式,原生的list顺序不变,生成一个新的排好序的list对象,sorted可以对可迭代对象进行排序

    list.sort()不会返回对象,改变原有的list顺序。只能用于列表排序

    3.选择排序法

    从第一个位置开始比较,找出最小的,和第一个位置互换,开始下一轮。

    步骤:

    1. 在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
    2. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
    3. 以此类推,直到所有元素均排序完毕。
    #选择排序
    s = [2,4,1,8,33,3,9,22]
    n = len(s)
    for i in range(n):
        min = i #最小值索引
        for j in range(i+1,n):
            if s[min] > s[j]:
                min = j 
        s[min],s[i] = s[i],s[min] #找出最小值与当前值交互
    print(s)

    4.冒泡排序法

    从左到右,数组中相邻的两个元素进行比较,将较大的放到后面。

    1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    2. 对第0个到第n-1个数据做同样的工作。这时,最大的数就“浮”到了数组最后的位置上。
    3. 针对所有的元素重复以上的步骤,除了最后一个。
    4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
    lt = [3, 5, 2, 1, 8, 4]
    n= len(lt)
    for x in range(n-1):
       for y in range(n-1-x):
          if lt[y]>lt[y+1]:
             lt[y],lt[y+1]=lt[y+1],lt[y]
    print(lt)
  • 相关阅读:
    C++面试考点
    C++面试考点
    C++11 引用叠加规则和模板参数类型推导规则
    C++11 引用叠加规则和模板参数类型推导规则
    C++11 auto和decltype推导规则
    C++11 auto和decltype推导规则
    RVO和NRVO
    RVO和NRVO
    Strange Bank(找零问题)
    eli和字符串 (牛客假期训练)
  • 原文地址:https://www.cnblogs.com/qqxin/p/11523582.html
Copyright © 2020-2023  润新知