当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 详解冒泡排序法

详解冒泡排序法

2019年04月01日  | 移动技术网IT编程  | 我要评论

陈爱能,超星pdg远程阅览器,上海超生二胎罚款标准

冒泡排序是一种简单的排序算法。

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。

 1 /*//冒泡排序法
 2 #include<stdio.h>
 3 #define n 5
 4 #include<stdlib.h>
 5 
 6 int main()
 7 {
 8     int i, j;//循环变量
 9     int temp;//用来交换的临时变量
10     int nums[n] = { 16,25,9,90,23 };
11     //外层循环控制轮数
12     for (i = 0; i < n - 1; i++)//5个数只用比较4次,所以 n - 1
13     {
14           for (j = 0; j < n - i - 1; j++)//内层循环控制 每轮的比较次数
15           {
16             if (nums[j] > nums[j + 1])
17             //如果前面的一个数小于后面的一个值,那么进行交换
18             {
19                 temp = nums[j];
20                 nums[j] = nums[j + 1];
21                 nums[j + 1] = temp;
22             }            
23            }         
24     }
25     printf("排序后的结果:\n");
26     for (i = 0; i < n; i++)
27     {
28         printf("%d\t", nums[i]);
29     }
30     return 0;
31 }
32 */
冒泡排序算法的原理如下:
  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了第一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网