数组——排序(选择法)

除了,之前的冒泡法外,又讲了一个新的方法——选择法。

算法要求:使用选择法排序法对n(这里为10个数)个整数进行升序排序。

所谓选择无疑是选出一个数然后不停的比较最后选出最大最小的数:上代码QWQ

 #include
int main ()
{
    int a[10],i,j,k,t,n=10;
    for(i=0;i     {
        scanf("%d",&a[i]);
    }
    for(i=0;i     {
        k=i;//假设当前第一个数为最值,存在k中
        for(j=i+1;j         {
            if(a[k]>a[j])//如果k的值大于正在比较的值
                k=j;//存入k中
        }
        if(k!=i)//如果较小的值不是一开存的值,开始互换
        {
            t=a[k];
            a[k]=a[i];
            a[i]=t;
        }
    }
    for(i=0;i         printf("%d ",a[i]);
    printf("\n");
    return 0;
}                                                                                                                                                                                                 

这就是选择法了,与冒泡法比较,效率有所提高(em.....觉得都差不多),仍要进行较多的排序,比较耗时。

——热心市民蔡先生 

你可能感兴趣的:(ACM)