Python 快速排序法

2021-09-25 18:55:47 字數 1339 閱讀 4045

**步驟:

(1)將列表中的首元素單獨放進乙個列表中,每次都與列表中的第乙個元素做比較

(2)當元素大於第乙個元素時,元素進入乙個新的存放比首元素大的列表中

(3)當比較的元素比首元素小時,元素進入乙個新的存放比首元素小的列表中

(4)最後都比較完成時將三個列表相結合將比首元素小的列表放前面,比首元素大的列表放在後面,首元素所在的列表放在中間。

**原理:

第一輪次

第一次比較:

mid[22] lista[89,523,489,8452,10,123] lessbeformid biggerafter[45]

第二次比較:

mid[22] lista[523,489,8452,10,123] lessbeformid biggerafter[45,89]

第三次比較:

mid[22] lista[489,8452,10,123] lessbeformid biggerafter[45,89,523]

第四次比較:

mid[22] lista[8452,10,123] lessbeformid biggerafter[45,89,489]

第五次比較:

mid[22] lista[10,123] lessbeformid biggerafter[45,89,489,8452]

第六次比較:

mid[22] lista[123] lessbeformid[10] biggerafter[45,89,489,8452]

第七次比較:

mid[22] lista lessbeformid[10] biggerafter[45,89,489,8452,123]

**實現:

lista = [22,45,89,523,489,8452,10,123]#定義乙個列表

def quicksort(list):

if len(list)<2:#當列表的長度小於2時

return list#返回原列表

else:

mid = list[0]#將首元素放進mid列表中

lessbeforemid= [i for i in list[1:] if i<=mid]#使用推導式將比首元素小的元素放入列表中

biggerafter = [i for i in list[1:] if i > mid]#使用推導式將比首元素大的元素放入列表中

finallylist = quicksort(lessbeforemid)+[mid]+quicksort(biggerafter)#將列表組合起來

return finallylist

print (quicksort(lista))

python 冒泡法 快速排序法

import random 匯入隨機數 def bubble sort l 定義函式 for i in range len l 1 因為如果有n個數,如果n 1個都已經排列好了,所以就已經排列好了,所以要 1,也可以不用 1,但是會造成資源的浪費 for j in range len l i 1 因...

快速排序法

一 快速排序演算法的基本特性 時間複雜度 o n lgn 最壞 o n 2 空間複雜度 o n lgn 不穩定。快速排序是一種排序演算法,對包含n個數的輸入陣列,平均時間為o nlgn 最壞情況是o n 2 通常是用於排序的最佳選擇。因為,基於比較的排序,最快也只能達到o nlgn c void q...

快速排序法

include stdafx.h include vos.h define table mid machine name midmachine define table midmach colname id id define table midmach colname ip ip define t...