首页 > 代码库 > c语言之排序

c语言之排序

冒泡排序,每次循环选出一个最大/最小的数在队伍的末端,循环n-1次

 1 # include <stdio.h>
 2 
 3 int main (void)
 4 {
 5     int a[10];
 6     int i, j, t;
 7 
 8     printf("请输入10个整数:");
 9     
10     for (i=0; i<10; i++)
11      scanf("%d", &a[i]);
12  
13     for (i=0; i<9; ++i)
14     {
15       for(j=0; j<9-i; j++)  // 后面位置的数据已选择
16       {  if (a[j]>a[j+1])
17           {  t = a[j];
18              a[j] = a[j+1];
19              a[j+1] = t;    //每两个相邻数比较大小,选择出最大的
20           }
21       }
22     }
23 
24     for (i=0; i<10; i++)
25      printf("%d ", a[i]);
26      
27     printf("\n");
28 
29     return 0;
30 }

 

选择排序,每次循环实现对相应位置的选数过程,循环n-1次

 1 # include <stdio.h>
 2 
 3 int main(void)
 4 {
 5  int a[10];
 6  int i, j, t;
 7 
 8  printf("请输入10个整数:");
 9  
10  for (i=0; i<10; i++)
11     scanf("%d", &a[i]);
12 
13  for(i=0; i<9; i++)
14   { for (j=i+1; j<10; j++) //与其余位置的数据依次进行比较
15      {
16        if(a[i]>a[j])
17        {
18          t = a[i];
19          a[i] = a[j];
20          a[j] = t;
21         }
22       }
23    }               // a[i]代表位置
24 
25   for (i=0; i<10; i++)
26       printf("%d ", a[i]);
27   
28   printf("\n");
29 
30     return 0;
31 }

 

查看程序运行过程中的区别,涉及到单步调试问题

 

step into:进入子函数内部
step over:越过子函数,但子函数会执行,只显示子函数运行结果
step out:进入到子函数中之后用此命令来跳出子函数