快速排序c 和python對比分析

2021-07-02 05:31:16 字數 769 閱讀 2960

c++的快速排序基本思想就是,任意取出一位作為對比位x,分別從序列兩端開始探測,先從右邊到左找到乙個比x大的數,在從左邊到右找到乙個比x小的數,然後交換他們,一直迴圈到i=j。這一次交換完畢之後,將x換到中間位置,因為左邊都比它小,右邊都比它大,所以它在中間。在函式最後,有乙個遞迴函式,分別在對左邊和右邊進行剛才的排序,直到將元素分解到1個的時候停止,迴圈結束。

void quicksort(int left,int right)

{ int i,j,t,temp;

if(left>right)

return;

temp = a[left];

i = left;

j = right;

while(i!=j)

{ while(a[j]>=temp && i

python中的快速排序實現思想類似,但是**會簡單一點,開始的時候建立兩個列表元素,從佇列中取出乙個元素x,將整個佇列迴圈遍歷一遍,將小於取出x的元素放在less中,將大於x的元素放在greater裡。最後返回乙個遞迴的表示式。

def quicksort(array):

less =

greater =

if len(array) <= 1:

return array

pivot = array.pop()

for x in array:

return quicksort(less) + [pivot] + quicksort(greater)

10種排序演算法的對比分析

效率太低,通過冒泡可以掌握swap。效率較低,但經常使用它內部的迴圈方式來找最大值和最小值。雖然平均效率低,但在序列基本有序時,它很快,所以也有其適用範圍。是插入排序的改良,對空間思維訓練有幫助。快排是軟體工業中最常見的常規排序法,其雙向指標掃瞄和分割槽演算法是核心。往往用於解決類似問題,特別地pa...

GAE SAE和BAE的對比分析

gae sae與bae的對比分析 本文主要從以下幾個方面對gae sae和bae的優劣進行分析。資料庫 sae 不支援 innodb 可申請支援,但申請有點難度 bae 預設支援。bae 不支援資料庫連線池 c3p0 bonecp 已測不支援 資料庫連線不能長時間保持。對於國內雲而言,sae 顯式給...

python HDF和CSV儲存優劣對比分析

小資料用csv,大資料用h5 結論1 幾百kb以上的資料都用h5比較好 結論2 幾kb的資料h5反而很慢 程式import pandas as pd impwww.cppcns.comort numpy as np from wja.wja tool import test time as tt f...