//排序--氣泡排序法公升級版
#include#include
#include
#include
/*氣泡排序:
氣泡排序(bubble sort),是一種電腦科學領域的較簡單的排序演算法。
它重複地走訪過要排序的數列,一次比較相鄰的兩個元素,如果他們的順序錯誤就把他們交換過來。
走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。
*///
冒泡法排序
void bubblesort(int * arr, int
num)
int i = 0, j = 0, exchange = 1, temp = 0
;
/*公升級版的精華所在,增加exchange變數
普通的氣泡排序需要遍歷n輪,但是有可能n-1輪時候就已經排序完成了(部分資料本來有序),但是程式仍然會執行
公升級版增加exchange變數,當判斷在一輪排序中,任何2個元素都沒有交換位置 說明該陣列已經有序
*/for (i = 0; i < num&& exchange; i++)
}}}//
列印陣列
void print(int * arr, int
num)
int i = 0
;
for (int i = 0; i < num; i++)
printf("\n
");}void
test();
//定義時間型別變數
time_t ts;
//生成隨機數種子
srand((unsigned int)time(&ts));
for (i = 0; i < 10; i++)
//列印陣列
printf("
\n原始資料----\n");
print(arr,
10);
//冒泡法排序
printf("
冒泡法排序之後的資料\n");
氣泡排序公升級版 雞尾酒排序
雞尾酒排序等於氣泡排序的輕微變形,不同的地方在於從低到高然後從高到低,而氣泡排序則僅從低到高去比較序列裡的每個元素。他可以得到比氣泡排序稍微好一點的效能,原因是氣泡排序只從乙個方向進行比對 由低到高 每次迴圈只移動乙個專案。雞尾酒排序演算法的運作如下 從左到右,將最小的放到左邊 for int i ...
成績排序 公升級版
有n個學生的資料,將學生資料按成績高低排序,如果成績相同則按姓名字元的字母序排序,如果姓名的字母序也相同則按照學生的年齡排序,並輸出n個學生排序後的資訊。測試資料有多組,每組輸入第一行有乙個整數n n 1000 接下來的n行包括n個學生的資料。每個學生的資料報括姓名 長度不超過100的字串 年齡 整...
排序 快速排序 平民版,公升級版
利用遞迴實現快排 將陣列或者子陣列劃分成左右兩個陣列 如何劃分成左右兩個陣列,是第二步會講的 呼叫自身對左邊陣列和右邊陣列進行排序。public void recquicksort int left,int right else 劃分所作的事情是,在陣列中選取乙個pivot樞紐值,然後劃分成兩個陣列...