快速排序演算法是一種基礎的演算法,主要用到分治和遞迴。這種演算法其實很有意思,有大佬叫它為填坑法。妙就妙在用填坑來形容了,真的是非常形象。從小到大排序為例的話,就是在乙個陣列中設定乙個比較值temp,將比temp值大的放temp的右邊,將比temp值小的放temp的左邊,快排的填坑形象的話,先在陣列中選定乙個值temp,這個temp就是坑,從陣列的最後乙個元素開始和這個temp值比較,如果比這個值大就將下標往前移一位,如果這時的元素的值小於temp,將這個值又挖個坑並把這個值填到temp的位置上,然後再從陣列的左邊開始,像從最右邊挖坑填坑一樣,直到跑完一輪,這時,temp的左邊的值都要小於temp,temp右邊的值都要大於temp,當然,看著我寫的這個可能不會有清晰的思路,然而,我不善於作圖,下面給出詳細的演算法:
void quick_sort(int a,int left,int right)
int leftindex = left;
int rightindex = right;
int temp = a[left];//這裡就是挖坑了
while (leftindex < rightindex)
else
}while (leftindex < rightindex)
else}}
//當左下標等於右下標時,退出迴圈,然後還剩下最開始挖的坑,填回去,temp值的左邊就小於temp,右邊的值就大於temp,
//然後又將左邊的這個陣列進行快排,右邊的也進行快排,最後的結果就是乙個從小到大的順序了
a[leftindex] = temp;
quicksort(a, left, leftindex - 1);
quicksort(a, leftindex + 1, right);
}
快速排序演算法的理解
本文主要是敘述一次快速排序演算法中發生了哪些步驟,以加深對快速排序演算法的理解。通過乙個參照數把整個數列分為大於它的部分和小於它的部分,再分別處理其兩邊的數列,直到結束。1.首先從需要排序的數列中選取乙個參照點,如第乙個資料,即key a low 2.從數列最後一位開始與key進行比對 降序排列 如...
關於快速排序演算法的理解
直接進入正題吧,快排演算法的思想主要是分兩步 1.使用空間複雜度為1的方法將一堆數中的某個元素找到自己的位置,並且保證左邊的數比自己小 大 右邊的數比自己大 小 2.將這個堆數左邊所有的數再次當做那堆數放到上面1的方法中,重複,直到代入的這堆數完全有序,完成之後再將將右邊所有的數當做那堆數放到上面的...
使用python理解快速排序演算法
快速排序是一種常用的優雅的排序演算法,快速排序使用的是 分而治之 的策略。具體 分而治之 策略這裡不作記錄。快速排序的原理就是,每次排序,我們選擇乙個基準值 然後把所有大於這個基準值 的值放到後面生成列表,把小於 等於 基準值 的值放到前面,生成乙個列表,然後使用遞迴將每一層問題逐級解決。假設有若干...