python 列表排序 python列表排序有哪些

2021-10-19 20:25:18 字數 3451 閱讀 4865

python列表排序:1、氣泡排序,是一種簡單的排序演算法,它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來;2、插入排序,通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。

1、氣泡排序

氣泡排序(bubble sort)是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。

#結果:[1,2,3,4,5,6,7,8,9]

2、插入排序

插入排序(insertion sort)是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,在從後向前的掃瞄過程中,需要把已排序元素逐步向後挪位,為最新元素提供插入空間。

#結果:[0, 0, 1, 2, 3, 5, 5, 6, 8, 9, 41]

3、選擇排序

選擇排序(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 ):

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]

python 列表排序

列表排序 s 1,2,3 s.reverse 倒序 s.sort 正序 sorted sorted iterable,cmp none,key none,reverse false new sorted list iterable 是可迭代型別 cmp 用於比較的函式,比較什麼由key決定,有預設值...

列表python排序

python題目 對列表 37,41.12,35,22,98,16,7,45,31 進行排序。這裡不考慮.sort 方法。usr bin env python coding utf 8 def merge left,right i,j 0,0result 左右列表元素對比大小,然後加1while i...

python列表排序

1.先來sort方法和sorted排序 sort方法不會生成新的列表,而sorted會 lst 3,2,9,4,34,43,22,11 lst.sort print lst print sorted lst 2.定義乙個列表,將原列表的最小值取出來,依次新增 lst1 def sort list t...