问个编程题

来源:百度知道 编辑:UC知道 时间:2024/05/24 17:47:19
输入一数组元素个数及数值,并对数组进行选择排序。选择排序思想是:每一趟从待排序的记录中选出最小的记录,放在已排好序的记录后面。

如:7 2 5 3

第一趟排序后:2 7 5 3

第二趟排序后:2 3 5 7

第三趟排序后:2 3 5 7

#include <stdio.h>
void main()
{
int a[10],i,j,k,temp; //设有10个数
for (i=0;i<10;i++)
scanf ("%d",&a[i]);
for (i=0;i<9;i++)
{
k=i;
for (j=i+1;j<10;j++)
if (a[k]>a[j])
k=j;
if (k!=i)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
for (i=0;i<10;i++)
printf ("%d\n",a[i]);
}
我上机运行过,是对的!^-^

貌似是选择排序吧~~O(n)的时间复杂度