python列表排序有哪些-Python教程

资源魔 42 0

python列表排序:一、冒泡排序,是一种简略的排序算法,它反复地遍历要排序的数列,一次比拟两个元素,假如他们的程序谬误就把他们替换过去;二、拔出排序,经过构建有序序列,关于未排序数据,正在已排序序列中从后向前扫描,找到相应地位并拔出。

相干学习保举:python教程

一、冒泡排序

冒泡排序(Bubble Sort)是一种简略的排序算法。它反复地遍历要排序的数列,一次比拟两个元素,假如他们的程序谬误就把他们替换过去。遍历数列的工作是反复地进行直到不再需求替换,也就是说该数列曾经排序实现。这个算法的名字由来是由于越小的元素会经由替换缓缓“浮”到数列的顶端。

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

二、拔出排序

拔出排序(Insertion Sort)是一种简略直观的排序算法。它的工作原理是经过构建有序序列,关于未排序数据,正在已排序序列中从后向前扫描,找到相应地位并拔出。拔出排序正在完成上,正在从后向前的扫描进程中,需求把已排序元素逐渐向后挪位,为最新元素提供拔出空间。

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

三、抉择排序

抉择排序(Selection Sort )是一种简略直观的排序算法。它的工作原理以下:起首正在未排序序列中找到最小(年夜)元素,寄存到排序序列的肇始地位,而后再从残余未排序元素中持续寻觅最小(年夜)元素。放到已排序序列的末尾。以此类推,直到一切元素均排序终了。

def selection_sort(list):
    n = len(list)
    for i in range(0, n -1):
        min_index = i
        for j in range(i + 1, n):
            if list[min_index] > list[j]:
                min_index = j
        if i != min_index:
            list[min_index], list[i] = list[i], list[min_index]
    print(list)
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(list):
    # 序列长度
    n = len( list )
    for i in range( 0, n ):
        for j in range( i , n ):
            if list[i] > list[j]:
                list[i], list[j] = list[j], list[i]
    return list
 # 抉择排序
def selection_sort(list):
    n = len(list)
    for i in range(0, n -1):
        min_index = i
        for j in range(i + 1, n):
            if list[min_index] > list[j]:
                min_index = j
        if i != min_index:
            list[min_index], list[i] = list[i], list[min_index]
    return list
#拔出排序
def insertion_sort(list):
  n = len(list)
  for i in range(1, n):
    for j in range(i, 0, -1):
      if list[j] < list[j - 1]:
        list[j], list[j - 1] = list[j - 1], list[j]
      else:
        break
  return list
if __name__ == "__main__":
    # 天生随机无序数据
    list = generator()
    # 打印无序数据
    print( '随机天生的无序数据:',list )
    # 冒泡排序
    sorted_data = bubble_sort( list )
    #拔出排序
    insertion_data=insertion_sort(list)
    #抉择排序
    selection_data=selection_sort( list )
    # 打印排序后果
    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 python教程 python编程 python使用问题

抱歉,评论功能暂时关闭!