1:/*
2:*author:justinzhang
3:*email:uestczhangchao@gmail.com
4:*time:2023年5月11日15:58:40
5:*discription:演算法導論第7章,快速排序演算法實現
6:change the previous c to cpp, and using template to make satisfy more data type
7:@justin at:2012-9-4 21:57:52
8:*/
9:
10: #include
11:using
namespace std;
12:/*交換兩個數*/
13: template void q_swap(t &x, t& y)
14:
19:
20:/*以陣列的最右邊元素a[r]為主元對陣列進行劃分,返回pivot,pivot左邊的元素都比a[r]小,右邊的元素
21:*都比a[r]大;
22:*/
23: template int partition(t a,int p, int r)
24:
35: }
36: i++;
37: q_swap(a[i],a[r]);
38:return i;
39: }
40:
41:/*利用partition不斷的對陣列進行劃分,然後分別對劃分後的兩個部分進行排序(分治法思想)*/
42: template void quicksort(t a,int low, int high)
43:
51:
52: }
53:
54:int main()
55: ;
58:int i;
59: quicksort(a,0,7);
60:for(i=0;i<=7;i++)
61: cout << a[i] << endl;
62:
63:/*----test double qsort----------*/
64: cout << "test double quicksrot"<< endl;
65:double data = ;
66: quicksort(data ,0, sizeof(data)/sizeof(double)-1);
67:
68:for(i=0;i<=sizeof(data)/sizeof(double)-1;i++)
69: cout << data[i] << endl;
70:
71:return 0;
72: }
73:
演算法導論之快速排序
def partition a,p,r x a r 錨點 主元 i p 1 for j in range p,r if a j x i 1a i a j a j a i a i 1 a r a r a i 1 return i 1 defquicksort a,p,r if p r 分治 q par...
快速排序 演算法導論
對於包含n個數的輸入陣列來說,快速排序是一種最壞情況時間複雜度為o n 的排序演算法。雖然最壞情況時間的複雜度很差,但是快速排序通常是實際排序應用中最好的選擇,因為它的平均效能非常好 它的期望時間複雜度是o nlgn 而且o nlgn 中隱含的常數因子非常小,另外,它還能夠進行原址排序,甚至在虛存環...
演算法導論 快速排序
既然敢叫 快速排序 必然有其過人之處。事實上,它確實是最快的通用內部排序演算法。它由hoare於1962年提出,相對歸併排序來說不僅速度快,並且不需要輔助空間。對於包含n個數的輸入陣列來說,快速排序是一種最壞情況時間複雜度為o n 2 的排序演算法。雖然最壞情況時間複雜度差,但是快速排序通常是實際排...