码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法——冒泡排序

时间:2020-04-09 10:28:16      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:算法   思想   bubble   stream   --   ++   span   时间   复杂度   

算法思想:

  • 通过与相邻元素的比较和交换来把小的数交换到最前面。这个过程类似于水泡向上升一样,因此而得名。
  • 冒泡排序的时间复杂度为O(n^2)

举例:

4 2 3 1 5

第一趟冒泡

第一轮:2 4 3 1 5

第二轮:2 4 1 3 5

第三轮:2 1 4 3 5

第四轮:1 2 4 3 5

得到最小的元素1排在最前面

第二趟冒泡:

第一轮:1 2 4 3 5

第二轮:1 2 3 4 5

第三轮:1 2 3 4 5

得到次大的元素2在第二个位置上

对剩下的序列依次冒泡就会得到一个有序序列

代码:

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int a[] = { 4,2,3,1,5 };
 5 void BubbleSort(int* a,int n) {
 6     for(int i=0;i<n-1;i++)
 7         for (int j = n - 1; j > i; j--) {
 8             int tmp;
 9             if (a[j - 1] > a[j]) {
10                 tmp = a[j - 1];
11                 a[j - 1] = a[j];
12                 a[j] = tmp;
13             }
14         }
15 }
16 
17 int main() {
18     BubbleSort(a, 5);
19     for (int i = 0; i < 5; i++)
20         cout << a[i] << " ";
21     return 0;
22 }

 

排序算法——冒泡排序

标签:算法   思想   bubble   stream   --   ++   span   时间   复杂度   

原文地址:https://www.cnblogs.com/PennyXia/p/12625154.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!