五種簡易排序(C語言)

2021-10-23 16:16:02 字數 2670 閱讀 9603

#include

#include

#include

#include

//判斷次序↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

bool is_sorted

(int buffer,

int buffersize)

return true;

}//判斷次序↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

//氣泡排序↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

void

bubble_sort

(int buffer,

int buffersize)}}

}//氣泡排序↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

//選擇排序↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

void

selection_sort

(int buffer,

int buffersize)

} k = buffer[i]

; buffer[i]

= buf;

buffer[index]

= k;}}

//選擇排序↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

//快速排序↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

intquick_sort_partition

(int buffer,

int low,

int high)

}else}}

buffer[index]

= pivot;

return index;

}void

quick_sort

(int buffer,

int low,

int high)

}//快速排序↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

//歸併排序↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

void

merge_sort_partition

(int buffer,

int begin1,

int end1,

int begin2,

int end2,

int* temp)

while

(i <= end1)

//與上面**呼應

temp[index++

]= buffer[i++];

while

(j <= end2)

//與上面**呼應

temp[index++

]= buffer[j++];

memcpy

(buffer + begin1, temp + begin1,

sizeof

(int)*

(end2 - begin1 +1)

);//拷貝進入buffer

}void

merge_sort

(int

* buffer,

int left,

int right,

int* temp)

//歸併排序↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

//計數排序↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

void

counting_sort

(int buffer,

int buffersize)

range = max - min +1;

int* temp =

(int*)

malloc

(sizeof

(int

)* range)

;//申請與之匹配的空間

if(temp ==

null

)return

;//未申請到空間返回

memset

(temp,0,

sizeof

(int

)*range)

;for

(int i =

0; i < buffersize; i++

) temp[buffer[i]

-min]++;

//對於buffer**現的數++

for(

int i =

0; i < range; i++

)free

(temp)

; temp =

null;}

//計數排序↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

void

main()

;int

* temp =

(int*)

malloc

(sizeof

(aa));

counting_sort

(aa,6)

;for

(int i=

0;i<

6;i++

)printf

("%d\n"

, aa[i]);

if(is_sorted

(aa,6)

)printf

("yes");

}

八種排序演算法(C語言簡易版)

排序,從小到大接觸最多的事件,班級排名,學校排名 在程式中,排序的思路很多,優先列出如下演算法 include include 巨集定義 maxd暫定100 define maxd 100 定義關鍵字 型別為int typedef int keytype 其他資料項,型別暫定int typedef ...

五種排序演算法 Python語言實現

交換兩項位置方法 coding utf 8 defswap lyst,i,j temp lyst i lyst i lyst j lyst j temp排序演算法 選擇排序 defselectionsort lyst i 0while i len lyst 1 minindex i j i 1whi...

快速排序優化演算法 五種 c

快排優化 2.聚集元素 3.尾遞迴優化 4.插入排序處理小陣列 快排演算法是基於分治策略的排序演算法,其基本思想是,對於輸入的陣列a low,high 按以下兩個步驟進行排序 1 劃分 以a p 為基準將a low high 劃分為三段a low p 1 a p 和a p 1 high 使得a lo...