一.选择排序
选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间。
算法步骤:
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
重复第二步,直到所有元素均排序完毕。
二.理解选择排序
三.代码实现
//选择排序
#include<stdio.h>
void sort(int* a, int n)
{
int i = 0;
int j = 0;
int index = 0;
int tmp = 0;
for (i = 0;i < n - 1;i++)
{
index = i;
for (j = i + 1;j < n;j++)
{
if (a[j] < a[index])
{
index = j;//找出最小元素的下标
}
}
if (index != i)//交换
{
tmp = a[index];
a[index] = a[i];
a[i] = tmp;
}
}
}
int main()
{
int n = 0;
scanf("%d", &n);
int arr[1024] = { 0 };
int count = 0;
for (count = 0;count < n;count++)
{
scanf("%d", &arr[count]);
}
sort(arr, n);
int i = 0;
for (i = 0;i < n;i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}