欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解冒泡排序法

程序员文章站 2022-05-29 12:05:18
冒泡排序是一种简单的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针 ......

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

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

 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. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。