详解冒泡排序法

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

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

 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("排序后的结果:
");
26     for (i = 0; i < N; i++)
27     {
28         printf("%d	", nums[i]);
29     }
30     return 0;
31 }
32 */
冒泡排序算法的原理如下:
  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了第一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
原文地址:https://www.cnblogs.com/Thomasming/p/10633369.html