zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    元类,单例模式
    面向对象高阶
    类的三大特性---封装以及Property特性
    c# 中的string(神奇的string)
    c#中的equal和getHashCode
    linq中的Distinct的使用(附带IComparable和IComparer的复习和使用)
    flex布局完整示例
    flex布局中flex-basis的理解
    CSS两端对齐的效果;
    理解c#中扩展性代码
  • 原文地址:https://www.cnblogs.com/qqxin/p/11523582.html
Copyright © 2011-2022 走看看