十大经典排序算法之冒泡排序【一】

【冒泡排序】(Bubble Sort

a)       原理

冒泡排序是最简单的排序算法。它依次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来,它重复的查询所要排序的数列。查询数列的工作直到不需要再进行交换元素即停止。排序过程中越小的元素经过交换依次冒泡浮岛数列的始端,由此得名冒泡。

b)       演示动态图

 

c)        算法步骤

l  比较相邻元素。如果前者比后者大,则进行交换;

l  依次查询数列中相邻元素,并进行比较,因此,一轮查询后,最大元素位于末端;

l  针对剩余数列元素重复上述查询比较工作;

l  重复上述步骤,直到数列排序完成。

d)       代码实现

 1 #include <iostream>
 2 using namespace std;
 3 //函数声明
 4 void BubbleSort(int[],int);//冒泡排序
 5 void ShowArray(int[],int);//打印
 6 
 7 //主函数
 8 int main()
 9 {
10     int array_a[] = {5,6,8,2,4,62,31,58,94,50,16};
11     int len = sizeof(array_a)/sizeof(array_a[0]);
12     //打印数组
13     cout << "原始数组: ";
14     ShowArray(array_a,len);
15 
16     //1-冒泡排序
17     BubbleSort(array_a,len);
18     //打印数组
19     cout << "【冒泡】排序后数组: ";
20     ShowArray(array_a,len);
21 
22     return 0;
23 }
24 //函数实现之打印数组
25 void ShowArray(int array_a[],int len)
26 {
27 
28     for(int i=0;i<len;i++)
29     {
30         cout << array_a[i] << "  ";
31     }
32     cout << endl;
33 }
34 //函数实现之冒泡排序:分为外层和内层;
35 void BubbleSort(int array_a[],int len)
36 {
37     for (int i=0;i<len-1;i++) //外层控制比较的轮数;
38     {
39         for (int j=0;j<len-i-1;j++)//内层控制每轮比较的次数;
40         {
41             if (array_a[j]>array_a[j+1])
42             {
43                 int temp;
44                 temp = array_a[j];
45                 array_a[j] = array_a[j+1];
46                 array_a[j+1] = temp;
47             }
48         }
49     }
50 }

 

参考博客:https://www.cnblogs.com/onepixel/articles/7674659.html,再次感谢!

posted @ 2019-05-31 22:26  xdak  阅读(756)  评论(0)    收藏  举报