#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...