python 常見排序例項

2022-05-14 02:26:16 字數 1986 閱讀 4768

使用python 基礎排序演算法設計,氣泡排序,插入排序,快速排序...

對一組無序資料進行排序演算法設計,要求如下:

輸入:[1, 3, 5, 23, 75, 34, 456, 86, 22, 74, 37, 5, 34]

輸出:[1, 3, 5, 5, 22, 23, 34, 34, 37, 74, 75, 86, 456]

核心演算法:迴圈比較相鄰的兩個元素,如果前面乙個元素比後面乙個元素大,則交換位置。

#!/usr/bin/env python 

# -*- coding: utf-8 -*-

def bubble_sort(data_source):

length = len(data_source)

for i in range(1, length):

for j in range(length - i):

if data_source[j] > data_source[j + 1]:

data_source[j], data_source[j + 1] = data_source[j + 1], data_source[j]

return data_source

if __name__ == '__main__':

test_array = [1, 3, 5, 23, 75, 34, 456, 86, 22, 74, 37, 5, 34]

print bubble_sort(test_array)

核心演算法:從頭到尾迴圈,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入,因而在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。

#!/usr/bin/env python 

# -*- coding: utf-8 -*-

def insert_sort(data_source):

count = len(data_source)

for i in range(1, count):

key = data_source[i]

j = i - 1

while j >= 0:

if data_source[j] > key:

data_source[j], data_source[j + 1] = key, data_source[j]

j -= 1

return data_source

if __name__ == '__main__':

test_array = [1, 3, 5, 23, 75, 34, 456, 86, 22, 74, 37, 5, 34]

print insert_sort(test_array)

核心演算法:每次迴圈,取乙個基數,將序列分成三部分:比基數小的數序列,基數,比基數大的序列。不斷重複對每個序列進行相同的處理,直到每個序列為空,則完成排序

#!/usr/bin/env python 

# -*- coding: utf-8 -*-

def quick_sort(data_source):

length = len(data_source)

if length == 0:

return

else:

left =

right =

for i in range(1, length):

if data_source[0] > data_source[i]:

else:

return quick_sort(left) + [data_source[0]] + quick_sort(right)

if __name__ == '__main__':

test_array = [1, 3, 5, 23, 75, 34, 456, 86, 22, 74, 37, 5, 34]

print quick_sort(test_array)

幾種常見的排序例項 c

部分函式儲存在下面的標頭檔案中。不喜勿碰,有錯誤敬請指點,謝謝。include include fun1.h using namespace std int main int i,j 直接插入排序 for i 1 i 10 i 希爾排序 int len 10 while true a k len t...

python快速排序介紹例項 Python排序例項

python歸併排序 測試 如下 defguibing list1 n len list1 print list1 if n 1 returnlist1 half n 2left res guibing list1 half right res guibing list1 half returnme...

python常見排序演算法 python常用排序演算法

def bubble sort alist 氣泡排序 n len alist for i in range n 1 外層迴圈次數 for j in range n 1 i 這裡 記得要 i if alist j alist j 1 alist j alist j 1 alist j 1 alist ...