选择排序
思想:在未排序序列中找到最小(最大)元素,放到待排序列的起始位置,再从剩余未排序序列中选取最小(最大)元素,放到已排好序的序列末尾。
时间复杂度:O(n^2)
稳定性:选择排序不是一种稳定的排序方法
/*
***作者:Bruce Yuu
***用途:工具函数,用于两个数之间交换
***参数:两个整型指针
***日期:2021/3/16
*/
void swap(int* x, int* y) {
int temp = *x;
*x = *y;
*y = temp;
}
/*
***作者:Bruce Yuu
***用途:选择排序
***参数:待排序的数组,数组长度
***日期:2021/3/16
*/
void Selection_Sort(int Arr[], int Len) {
int Count1 = 0, Count2 = 0, Temp = 0;;
for (Count1 = 0; Count1 < Len - 1; Count1++) {
Temp = Count1;
for (Count2 = Count1 + 1; Count2 < Len; Count2++) {
if (Arr[Temp] > Arr[Count2]) {
Temp = Count2;
}
}
if (Temp != Count1) {
swap(&Arr[Count1], &Arr[Temp]);
}
}
}