当前位置: 首页 > Python编程 > Python编程实战技能 > Python编程学习教程 > python列表排序有哪些

python列表排序有哪些

发布时间:2020年10月29日 20:25:51 来源:环球青藤 点击量:551

【摘要】python列表排序:1、冒泡排序,是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来

python列表排序:1、冒泡排序,是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来;2、插入排序,通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

相关学习推荐:python教程

1、冒泡排序

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

def bubble_sort(pst):
    n = len(pst)
    for i in range(n - 1):
        for j in range( 0,n - 1 - i):
            if pst[j] > pst[j + 1]:
                pst[j], pst[j + 1] = pst[j + 1], pst[j]
        # if pst[i] > pst[i + 1]:
        #     pst[i], pst[i + 1] = pst[i + 1], pst[i]
    print(pst)
pst=[2,4,6,8,1,3,5,7,9]
bubble_sort(pst)
#结果:[1,2,3,4,5,6,7,8,9]

2、插入排序

插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前的扫描过程中,需要把已排序元素逐步向后挪位,为最新元素提供插入空间。

def insertion_sort(pst):
  n = len(pst)
  for i in range(1, n):
    for j in range(i, 0, -1):
      if pst[j] < pst[j - 1]:
        pst[j], pst[j - 1] = pst[j - 1], pst[j]
      else:
        break
  print(pst)
insertion_sort([3,0,2,5,8,5,9,41,0,1,6])
#结果:[0, 0, 1, 2, 3, 5, 5, 6, 8, 9, 41]

3、选择排序

选择排序(Selection Sort )是一种简单直观的排序算法。它的工作原理如下:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(大)元素。放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

def selection_sort(pst):
    n = len(pst)
    for i in range(0, n -1):
        min_index = i
        for j in range(i + 1, n):
            if pst[min_index] > pst[j]:
                min_index = j
        if i != min_index:
            pst[min_index], pst[i] = pst[i], pst[min_index]
    print(pst)
selection_sort([5,9,6,42,9,4,66,2,3,0,1])
#结果:0, 1, 2, 3, 4, 5, 6, 9, 9, 42, 66]

总结:

import random
# 随机生成1-1000之间无序序列整数数据
def generator():
    random_data = []
    for i in range( 0, 10 ):
        random_data.append( random.randint( 1, 1000 ) )
    return random_data
# 冒泡排序
def bubble_sort(pst):
    # 序列长度
    n = len( pst )
    for i in range( 0, n ):
        for j in range( i , n ):
            if pst[i] > pst[j]:
                pst[i], pst[j] = pst[j], pst[i]
    return pst
 # 选择排序
def selection_sort(pst):
    n = len(pst)
    for i in range(0, n -1):
        min_index = i
        for j in range(i + 1, n):
            if pst[min_index] > pst[j]:
                min_index = j
        if i != min_index:
            pst[min_index], pst[i] = pst[i], pst[min_index]
    return pst
#插入排序
def insertion_sort(pst):
  n = len(pst)
  for i in range(1, n):
    for j in range(i, 0, -1):
      if pst[j] < pst[j - 1]:
        pst[j], pst[j - 1] = pst[j - 1], pst[j]
      else:
        break
  return pst
if __name__ == "__main__":
    # 生成随机无序数据
    pst = generator()
    # 打印无序数据
    print( '随机生成的无序数据:',pst )
    # 冒泡排序
    sorted_data = bubble_sort( pst )
    #插入排序
    insertion_data=insertion_sort(pst)
    #选择排序
    selection_data=selection_sort( pst )
    # 打印排序结果
    print( '冒泡排序:',sorted_data )
    print( '插入排序:', insertion_data )
    print( '选择排序:', selection_data )
'''
结果:
随机生成的无序数据: [300, 517, 591, 209, 204, 789, 417, 739, 803, 393]
冒泡排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803]
插入排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803]
选择排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803]
'''

想了解更多编程学习,敬请关注php培训栏目!

以上就是小编分享的关于python列表排序有哪些的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!

分享到: 编辑:wangmin

就业培训申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

绑定手机号

应《中华人民共和国网络安全法》加强实名认证机制要求,同时为更加全面的体验产品服务,烦请您绑定手机号.

预约成功

本直播为付费学员的直播课节

请您购买课程后再预约

环球青藤移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载
环球青藤官方微信服务平台

刷题看课 APP下载

免费直播 一键购课

代报名等人工服务

课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部