选择排序
第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
代码
#include <stdio.h>
void SelectSort(int arr[], int size)
{
int i, j, min, temp;
for (i = 0; i < size - 1; ++i) {
min = i;
for (j = i + 1; j < size; ++j) {
if (arr[j] < arr[min]) {
min = j;
}
}
temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
void PrintArr(int arr[], int size)
{
for (int i = 0; i < size; ++i) {
printf("%d ", arr[i]);
}
printf("
");
}
int main()
{
int arr[10] = {6, 0, 5, 3, 15, 21, 13, 9, 12, 8};
PrintArr(arr, 10);
SelectSort(arr, 10);
PrintArr(arr, 10);
return 0;
}