• 两种常用的C语言排序算法


    1.

    要求输入10个整数,从大到小排序输出

    输入:2 0 3 -4 8 9 5 1 7 6

    输出:9 8 7 6 5 3 2 1 0 -4

    解决方法:选择排序法

    实现代码如下:

    #include <stdio.h>

    int main(int argc, const char * argv[]) {

        int num[10],i,j,k,l,temp;

        //用一个数组保存输入的数据

        for(i=0;i<=9;i++)

        {

            scanf("%d",&num[i]);

        }

        //用两个for嵌套循环来进行数据大小比较进行排序

        for(j=0;j<9;j++)

        {

            for(k=j+1;k<=9;k++)

            {

                if(num[j]<num[k]) //num[j]<num[k]

                {

                    temp=num[j];

                    num[j]=num[k];

                    num[k]=temp;

                }

            }

        }

        //用一个for循环来输出数组中排序好的数据

        for(l=0;l<=9;l++)

        {

            printf("%d ",num[l]);

        }

        return 0;

    }

    2.

    要求输入10个整数,从大到小排序输出

    输入:2 0 3 -4 8 9 5 1 7 6

    输出:9 8 7 6 5 3 2 1 0 -4

    解决方法:冒泡排序法

    实现代码如下:

    #include <stdio.h>

    int main(int argc, const char * argv[]) {

        //用一个数组来存数据    

        int num[10],i,j,k,l,temp;    

        //用for来把数据一个一个读取进来   

        for(i=0;i<=9;i++)        

        {        

            scanf("%d",&num[i]);        

        }

         //用两次层for循环来比较数据,进行冒泡    

        for(j=0;j<9;j++) 

        {   

            for(k=0;k<9-j;k++)   

            { 

                if(num[k]<num[k+1]) //num[k]<num[k+1]       

                { 

                    temp=num[k];

                    num[k]=num[k+1];

                    num[k+1]=temp;  

                }  

            }  

        }

        //用一个for循环来输出数组中排序好的数据

        for(l=0;l<=9;l++)

        {

           printf("%d ",num[l]);  

        }    

        return 0;

    }

  • 相关阅读:
    NOI2004 郁闷的出纳员 [Splay]
    关押罪犯 [二分]
    SCOI2010 传送带 [三分/模拟退火]
    POI2007 MEG-Megalopolis [树状数组]
    食物链 [并查集]
    SDOI2011 染色 [树链剖分]
    国家集训队 数颜色 [莫队]
    JSOI2008 星球大战 [并查集]
    [NOI2002] 银河英雄传说 (带权并查集)
    种树 [堆]
  • 原文地址:https://www.cnblogs.com/xiao-c-2016/p/5903274.html
Copyright © 2020-2023  润新知