排序演算法是演算法裡面的基礎,演算法主要是考驗思維,在這裡會介紹三個簡單的演算法:直接插入排序,選擇排序,氣泡排序。
直接插入排序
直接插入排序經過 n-1 次迴圈將需要排序的元素排序好,每一次迴圈依次新增乙個後面的新元素到前面排好序的元素中,時間複雜度為(n^2)。**如下
/*
直接插入排序
引數:需要排序的陣列,陣列中元素的個數
返回值:無
*/void zhi_jie(int a,int num)
a[m+1] = z;//找到了要插入的位置
}}
選擇排序:
選擇排序也是經過n-1次迴圈將需要排序的元素排序好,每一次迴圈是尋找後面元素中最小/最大的元素,插入到前面排好序的後面,時間複雜度為(n^2)。**如下
/*
選擇排序實現排序
引數:需要排序的陣列,陣列中元素的個數
返回值:無
*/void xuan_ze(int a,int num)
}}
氣泡排序
氣泡排序也是經過n-1次迴圈將需要排序的元素排序好,每一次迴圈找到最大/最小的元素,移動到後面排好序的元素前,時間複雜度為(n^2)。**如下
/*
冒泡的方法實現排序
引數:需要排序的陣列,陣列中元素的個數
返回值:無
*/void mao_pao(int a,int num)
}
接下來就是主函式的了,**如下:
#include"stdio.h"
//巨集定義陣列中元素的個數
#define test_num 5
//這裡加上上面寫的函式即可。
int main()
printf("你輸入的數字是 :");
for(i = 0;i < test_num;i++)
printf("\n");
//排序操作
// mao_pao(a,test_num);
// zhi_jie(a,test_num);
// xuan_ze(a,test_num);
printf("排序之後的順序為 :");
for(i = 0;i < test_num;i++)
printf("\n");
return 0;
}
C語言之排序演算法 插入排序
include include include define arraynum 10 int sortarraycreate int num for int i 0 i 0 ptr j tmp j 查詢之前的幾項,如果存在比它大的話就一直移動直到比它小的時候,或者到達最頂端的時候停止移動 ptr j...
C語言之排序演算法 選擇法排序
include include include define arraynum 10 int sortarraycreate int num for int i 0 ireturn ptr void sort int ptr,int num if ischange int main int argc...
C語言之桶排序
桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均勻分配的時候,桶排序使用線性時間 n 但桶排序並不...