排序算法——冒泡排序

算法思想:

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