您的位置:首页 > 其它

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

2020-04-18 07:21 483 查看

【推荐阅读】微服务还能火多久?>>>

【冒泡排序】(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,再次感谢!

原文出处:https://www.cnblogs.com/xdak/p/10957844.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bubble