C语言之选择排序
选择排序:不像冒泡排序一样进行多次的记录交换,而是每次找到一个最小的记录再进行交换.
因为每趟排序并不是不断的交换记录,而是每趟遍历完之后选择一个最小的记录进行交换,因此叫作简单选择排序
程序源码:
#include <stdio.h>
void selectSort(int arr[], int len)
{
int minIndex;
int i, j, temp;
for (i = 0; i < len - 1; i++)
{
minIndex = i;
for (j = i + 1; j < len; j++)
{
if (arr[j] < arr[minIndex])
{
minIndex = j;
}
}
if (minIndex != i)
{
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
void Print(int *arr, int n)
{
for (int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[] = {2, 5, 6, 4, 3, 7, 9, 8, 1, 0, 13};
int len = sizeof(arr) / sizeof(arr[0]);
Print(arr, len);
selectSort(arr, len);
Print(arr, len);
return 0;
}