2016.10.29
【算法思想】
选择排序算法很简单,每次找到当前无序序列中最大的一项,安排到有序序列的最后。
【算法分析】
时间复杂度O(n2),是不稳定排序
【代码实现】
# include <stdio.h>
int n;
int a[10005];
void selection_sort(void);
void swap(int ,int );
int main(void)
{
int i;
scanf("%d", &n);
for (i = 1; i <= n; ++i)
scanf("%d", &a[i]);
selection_sort();
for (i = 1; i <= n; ++i)
printf("%d\n", a[i]);
return 0;
}
void selection_sort(void)
{
int i, j;
int min, index;
for (i = 1; i <= n; ++i)
{
min = -100000000;
for (j = i; j <= n; ++j)
if (min < a[j])
{
min = a[j];
index = j;
}
swap(i, index);
}
}
void swap(int m,int n)
{
int t;
t = a[m];
a[m] = a[n];
a[n] = t;
}