淺析氣泡排序-c++
基本思想
氣泡排序(Bubble Sort)是一種交換排序,它的基本思想是: 兩兩比較相鄰記錄關鍵字,如果反序則交換,直到沒有反序的記錄為止。
氣泡排序演算法
#include <iostream>
using namespace std;
int main()
{
int a[8]{ 11,2,5,23,6,8,33,12 };
for (int i = 0; i < 8; i++)
{
for (int j = 7; j > i; j--)
{
if (a[j] > a[j - 1])
{
int tmp = a[j - 1];
a[j - 1] = a[j];
a[j] = tmp;
}
}
}
for (int i = 0; i < 8; i++)
cout << a[i] << " ";
system("pause");
return 0;
}
這種情況氣泡排序的時間複雜度最優和最差都是O(n^2)
氣泡排序優化
#include <iostream>
using namespace std;
int main()
{
int a[8]{ 11,2,5,23,6,8,33,12 };
for (int i = 0; i < 8; i++)
{
bool bFlag = false;
for (int j = 7; j > i; j--)
{
if (a[j] > a[j - 1])
{
int tmp = a[j - 1];
a[j - 1] = a[j];
a[j] = tmp;
bFlag = true;
}
}
if (!bFlag)
{
break; //無需重新排序
}
}
for (int i = 0; i < 8; i++)
cout << a[i] << " ";
system("pause");
return 0;
}
這種情況氣泡排序的時間複雜度最差是O(n^2),最優情況則是無需重新排序,直接返回
相關文章
- 淺析氣泡排序排序
- 排序——氣泡排序排序
- 深入淺出的排序演算法-氣泡排序排序演算法
- 氣泡排序排序
- 9. 氣泡排序,以及如何優化氣泡排序,氣泡排序屬於插入排序排序優化
- 排序:氣泡排序&快速排序排序
- js氣泡排序JS排序
- JavaScript氣泡排序JavaScript排序
- 氣泡排序1排序
- 氣泡排序-fusha排序
- 氣泡排序演示排序
- Shell氣泡排序排序
- d氣泡排序排序
- 容器氣泡排序排序
- 氣泡排序法排序
- 氣泡排序(Java)排序Java
- Python 氣泡排序Python排序
- C++排序演算法之氣泡排序改進版C++排序演算法
- 陣列氣泡排序陣列排序
- Python_氣泡排序Python排序
- 氣泡排序筆記排序筆記
- 氣泡排序(python版)排序Python
- 19_氣泡排序排序
- 函式氣泡排序函式排序
- 排序演算法--氣泡排序排序演算法
- 排序演算法__氣泡排序排序演算法
- 排序演算法–氣泡排序排序演算法
- 選擇排序和氣泡排序排序
- 氣泡排序與選擇排序排序
- 【排序】氣泡排序(待補充)排序
- 氣泡排序 插入排序 快排排序
- Python實現氣泡排序Python排序
- 如何優化氣泡排序?優化排序
- JAVA基礎--氣泡排序Java排序
- js氣泡排序動畫JS排序動畫
- Java實現氣泡排序Java排序
- C語言之氣泡排序C語言排序
- OJ題之氣泡排序排序