说起冒泡排序,大家对这个名词一定很熟悉,接触过的人都知道,这是我们很常见的一个知识点,也是我们笔试出现频率很高的一个题,那下面我们一起来聊聊冒泡排序。
冒泡排序的原理:
1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上
2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置
3)重复上述过程,共经过n-1趟冒泡排序后,排序结束
C代码:
1 #include <stdio.h>
2
3 int main()
4 {
5 int a[11],i,j,t;
6
7 printf("Input 10 numbers:\n");
8 for(i = 1; i < 11; i++)
9 scanf("%d",&a[i]);
10 printf("\n");
11
12 for(j = 1; j <= 9; j++)
13 {
14 for(i = 1; i <= 10 - j; i++)
15 if(a[i] > a[i+1])
16 {
17 t = a[i];
18 a[i] = a[i+1];
19 a[i+1] = t;
20 }
21 }
22 printf("The sorted numbers:\n");
23 for(i = 1; i < 11; i++)
24 printf("%d ",a[i]);
25 return 0;
26 }
27
我们分析问题要结合图示,这样理解起来更快哦。