C語言排序演算法——第一次見這樣的排序演算法,666
1 #include
2 #define N 10
4 void BubbleSort(int *a);
5 void SelectSort(int a[]);
6 void QuickSort(int *a, int left, int right);
7 int main(){
8 int a[N] = ;
9 int i;
10 //SelectSort(a);
11 QuickSort(a,0,sizeof(a)/sizeof(a[0])-1);
12 for(i=0; i
13 printf("%d ", a[i]);
14 }
15 return 0;
16 }
17
19 int temp = *p1;
20 *p1 = *p2;
21 *p2 = temp;
22 }想要一起學習C 的可以加裙二四八八九四四三零,有很多大神一起學習交流,有資源,然後可以訂閱一下
24 {
25 int t = a[i];
26 a[i] = a[j];
27 a[j] = t;
28 }
29 void BubbleSort(int *a){
30
31 int i,j;
32 for(i=0; i
33 for(j=0; j
34 if(a[j]>a[j+1])
35 swap(&a[j],&a[j+1]);
36 }
37 }
38
39 }
40
41 void SelectSort(int a[]){
42 int i,j,min;
43
44 for(i=0; i
45 min = i;
46 for(j=i+1; j
47 if(a[j]
48 min =j;
49 }
50 swap(&a[i],&a[min]);
51 }
52 }
53
54 void QuickSort(int *a, int left, int right){
55 int key = a[left];
56 int i = left;
57 int j = right;
58
59
60 if(left >= right)
61 return ;
62
63 while(i
64 while(i=key){ /*a[j]>=key 如果只寫> 會進入死循環*/
65 j--;
66 }
67 a[i] = a[j];
68 while(i
69 i++;
70 }
71 a[j] = a[i];
72 }
73 a[i] = key;
74 QuickSort(a, left, i-1);
75 QuickSort(a, i+1, right);
76 }
77
78 /*
79 最差時間分析 平均時間複雜度 穩定度 空間複雜度
80 冒泡 O(n2) O(n2) 穩定 O(1)
81 選擇 O(n2) O(n2) 穩定 O(1)
82 快速 O(n2) O(n*log2n) 不穩定 O(log2n)~O(n)
83 */
想要一起學習C 的可以加裙二四八八九四四三零,有很多大神一起學習交流,有資源,然後可以訂閱一下
※學了C加加,我能做什麼?
※C語言程序員與程序員老婆的故事
※C語言——老江湖不容忽視的新問題你有遇到嗎?
※c語言編程之C語言學習技巧
TAG:C加加 |
※演算法——選擇排序
※「演算法」什麼是桶排序
※排序演算法 冒泡排序
※15 種排序演算法可視化展示
※排序演算法總結
※什麼是插入排序演算法?
※這或許是東半球分析十大排序演算法最好的一篇文章
※每天分享一個演算法題
※就是這35個人,率先入選了《共識演算法高階課》第一期!
※我的第一本演算法書
※下載 | 866頁《計算機視覺:原理,演算法,應用,學習》第五版
※python實現二分查找演算法/二分排序演算法
※大數據演算法:kNN演算法
※訓練史上最佳GAN用了512塊TPU,一作自述:這不是演算法進步,是算力進步
※數據挖掘經典演算法之C4.5
※寫完這個排序演算法,老闆就叫我滾蛋…
※五種排序演算法python語言實現
※頁面置換演算法(LRU演算法)
※直擊AWE2019!一塊晶元,一個演算法,讓你看什麼都是8K!
※三星S10+相機跑分公布:並列全球第一 這次演算法優化立功了