筆記 遞迴實現快速排序

2021-09-02 17:14:03 字數 449 閱讀 2195

//快排的思路就是選定乙個數(一般為序列第乙個數)為樞軸,將序列分為比樞軸小和比樞軸大的兩個序列,

//再對兩個序列進行快排,從而逐漸實現使序列在分解過程中逐漸有序的目的。

void quicksort(elemtype a,int low,int high)

{ if(low=pivot)//找到比樞軸小的數則結束迴圈

--high;

a[low]=a[high];//移到左邊序列

while(low時間複雜度,最好情況是o(nlogn),待排序序列越無序,演算法效率越高。最壞情況是o(n^2),待排序序列越有序,演算法效率越低。快速排序最好的情況是每次取的樞軸都剛好平分整個陣列,最壞的情況是每次取的樞軸都在陣列的一端。

空間複雜度,最好情況是o(logn),也就是遞迴樹的深度。最壞情況是o(n),遞迴次數是n-1。

快速排序是不穩定的,因為存在交換關鍵字。

快速排序 遞迴實現

快速排序演算法 用到了 分治法 遞迴演算法 package com.xiahui public class quicksort quicksort quicksort new quicksort quicksort.quicksort a,0,6 for int i 0 i a.length i p...

快速排序 遞迴實現

快速排序演算法 用到了 分治法 遞迴演算法 package com.xiahui public class quicksort quicksort quicksort new quicksort quicksort.quicksort a,0,6 for int i 0 i a.length i p...

遞迴實現快速排序

所有查詢中hash查詢效率最高,在所有排序中,快速排序的效率也是最高的。採用遞迴函式的方法來實現快速排序!include include include intquick sort int int,int int partion int int,int int main int argc,const...