//选择排序
#include<stdio.h>
int main()
{
void sort(int array[], int n);
int a[10], i;
printf("enter array:\n");
for (i = 0; i < 10; i++)
scanf_s("%d", &a[i]);
sort(a, 10);
printf("The sorted array:\n");
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
void sort(int array[], int n)
{
int i, j, k, t;
for (i = 0; i < n-1; i++)
{
k = i;
for (j = i + 1; j < n; j++)
if (array[j] < array[k])
k = j;
t = array[k];
array[k] = array[i];
array[i] = t;
}
}
选择排序:
先将10个数中最小的数与a[0]对换,再讲a[1]~a[9]中最小的数与a[1]对换.....,每比一轮,找出一个未经排序的数中的最小一个。共比较9轮。由小到大排序和由大到小排序原理是一样的,只不过一个是每一轮比较选出最大值或者每一轮比较选出最小值互换位置。
这种排序方法简单粗暴,但是时间复杂度非常高,只是作为一个基本的排序方法了解。如果面试时候连这个都写错了,100%被拒。