淺析氣泡排序-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排序
- 氣泡排序-fusha排序
- 氣泡排序演示排序
- Shell氣泡排序排序
- d氣泡排序排序
- 氣泡排序正解排序
- JavaScript氣泡排序JavaScript排序
- java氣泡排序Java排序
- 氣泡排序 java排序Java
- php氣泡排序PHP排序
- Java 氣泡排序Java排序
- Javascript 氣泡排序JavaScript排序
- 氣泡排序(Java)排序Java
- 容器氣泡排序排序
- 氣泡排序1排序
- 氣泡排序法排序
- 基本排序之氣泡排序排序
- 排序:交換排序——氣泡排序法排序
- C++排序演算法之氣泡排序改進版C++排序演算法
- [C++] 氣泡排序的模板函式設計C++排序函式
- 氣泡排序筆記排序筆記
- js氣泡排序動畫JS排序動畫
- 陣列氣泡排序陣列排序
- python氣泡排序Python排序
- 氣泡排序 bubble sort排序
- 【筆記】氣泡排序筆記排序
- 氣泡排序文法排序
- 19_氣泡排序排序
- Python 氣泡排序Python排序