zoukankan      html  css  js  c++  java
  • C语言中常见的排序方法

       在C语言中,常见的排序方法有冒泡法,排序法,插入法等等。所谓的冒泡法,就是对一组数字进行从大到小或者从小到大的一种排序方法。主要就是相邻的数值相互交换。从第一个数值开始,如果这相邻的两个数值排序与我们希望的排序位置不同时,那么就将两个数的位置进行交换。如果一致,就不用交换。一直重复这个过程,直到没有数值需要交换为止,则排序完成。下面是将10个学生的成绩用冒泡法按顺序排列的做法:

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int i;
     5     int arr[10];
     6     for(i=0;i<10;i++)
     7     {
     8       printf("请输入第%d个学生的成绩:
    ",i+1);
     9       scanf("%d",&arr[i]);
    10      }
    11 
    12      int j;
    13      for(j=0;j<9;j++)
    14      {
    15         for(i=0;i<9;i++)    //循环9次
    16           {
    17               int temp=arr[i];  //将arr[i]赋值到一个变量中,arr[i+1]赋值到arr[i]中,此时相邻两个数值换位。
    18               arr[i]=arr[i+1];
    19               arr[i+1]=temp;
    20           }
    21       }
    22       for(i=0;i<10;i++)    
    23       {
    24           printf("%d
    ",&arr[i]);
    25     }
    26 
    27 
    28 return 0;
    29 }    

    选择法:

    选择法是用一个变量不断地选择小的数,将值付给变量再通过变量付给相应位置的数组元素…

    #include<stdio.h>
    int main()
    {
       int i;
       int arr[10];
       for(i=0;i<10;i++)
       {
          printf("请输入第%d个学生的成绩:
    ");
          scanf("%d",&arr[i]);
        }
        int j;
        for(j=0;j<10;j++)
        {
           for(i=j;i<10;i++)
             {
                if(arr[j]>arr[i])   //  判断 arr[j]>arr[i] ,条件成立则将arr[j]与 arr[i]交换
                  {
                          int temp=arr[j];
                          arr[j]=arr[i];
                          ar[i]=temp;
                   }
              }
         }
    
        for(i=0;i<10;i++)
        {
           printf("%d",&arr[i]);
         }
    
    return 0;
    }

    插入法:

    #include<stdio.h>
    int main()
    {
       int arr[7]={2,4,5,23,45,78};
       int num;
       printf("请输入一个数字:
    ",num);
       scanf("%d",&num); 
       int i=0;          //初始化为0
       int index=6;
       for(;i<6;i++)
       {
           if(num>=arr[i]&&num<arr[i+1]) //判断输入的值大于等于前一项且小于后一项时,成立则将这个值插入后一项
            {
                index=i+1;
                break;
             }
           if(num<arr[0]) //判断输入的值小于第一项,成立则这个值放在第一项
            {
                index=0;break;
             }
       }
       for(i=6;i>index;i--)
       {
           arr[i]=arr[i-1];
        }
       arr[index]=num;
       for(i=0;i<7;i++)
        {
            printf("%d",arr[i]);
         }
    
    return 0;
    }
  • 相关阅读:
    python 类和实例
    python 装饰器
    *args和**kwargs:
    定义函数
    python 调用函数
    python lambda表达式
    java-commons-HttpClient超时设置setConnectionTimeout和setSoTimeout
    python 获取响应头
    Freesshd Permission denied (publickey).
    update 嵌套优化
  • 原文地址:https://www.cnblogs.com/yin-yi/p/4440496.html
Copyright © 2011-2022 走看看