演算法導論 關於快速排序的實現(c語言實現)

2021-08-07 15:20:01 字數 730 閱讀 2419

在演算法導論的第七章,介紹了有關快速排序的演算法。該演算法其實是分治演算法的一種。

分:將陣列中的元素分成兩部分和乙個pivot;

治:遞迴的對兩個子陣列進行排序;

合:此時將陣列遍歷輸出即可;

書中介紹的演算法的主要思想如下:

1、首先將陣列的第乙個元素作為pivot,然後順序的遍歷該陣列,將小於pivot的元素同當前位置的下乙個位置的元素交換;

2、該過程直到遍歷到陣列最後乙個元素為止,最終將小於pivot的元素放在其左側,大於pivot的元素放在其右側;

3、遍歷輸出陣列。

這是我寫的完整的c**,以及測試結果:

#include

void quicksort(int *a,int p,int q);

int partition(int *a,int p,int q);

int main()

quicksort(a,0,7);

printf("排序後:");

for(i=0;i<8;i++)

printf("\n");

return 0;

}void quicksort(int *a,int p,int q)

return;

}int partition(int *a,int p,int q)

}t = a[i];

a[i] = a[p];

a[p] = t;

return i;

}

演算法導論 快速排序實現

package search 快速排序演算法導論 public class quicksort1 quicksort1 q new quicksort1 q.quicksort arr,0,arr.length 1 q.print1 arr 合併 public void quicksort int ...

演算法導論的C 實現 5 快速排序

對於包含n個數的輸入陣列來說,快速排序是一種最壞情況時間複雜度為o n 2 的排序演算法。雖然最壞情況時間複雜度很差,但是快速排序通常是實際排序應用中最好的選擇,因為它的平均效能非常好 它的期望時間複雜度是o nlgn 而且o nlgn 中隱含的常數因子非常小。與歸併排序一樣,快速排序也使用了分治思...

快速排序 演算法導論

對於包含n個數的輸入陣列來說,快速排序是一種最壞情況時間複雜度為o n 的排序演算法。雖然最壞情況時間的複雜度很差,但是快速排序通常是實際排序應用中最好的選擇,因為它的平均效能非常好 它的期望時間複雜度是o nlgn 而且o nlgn 中隱含的常數因子非常小,另外,它還能夠進行原址排序,甚至在虛存環...