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个学生的成绩:\n",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\n",&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个学生的成绩:\n");

      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("请输入一个数字:\n",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;

}

 

你可能感兴趣的:(C语言)