排序算法——冒泡排序

Posted pennyxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法——冒泡排序相关的知识,希望对你有一定的参考价值。

算法思想:

  • 通过与相邻元素的比较和交换来把小的数交换到最前面。这个过程类似于水泡向上升一样,因此而得名。
  • 冒泡排序的时间复杂度为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 }

 

以上是关于排序算法——冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

排序算法之冒泡选择插入排序(Java)

排序算法_冒泡排序(算法设计与C代码实现)

三大基础排序算法(冒泡排序,选择排序,插入排序)

交换排序(冒泡排序快速排序的算法思想及代码实现)

冒泡排序

冒泡排序算法原理和代码实现,就是这么简单。。。