一、演算法思想:
氣泡排序是交換排序中一種簡單的排序方法 基本思路就是按照想要的序列方式(增序或降序)對相鄰的兩個關鍵字進行比較,不滿足目的序列要求的兩個關鍵字進行交換。
二、處理過程:
1、將待排序區分為無序區與有序區 有序區為零
2、從無序區首元素開始,兩兩比較,對不滿足目標需求的關鍵字進行交換,一趟排序後,將最大(最小)的值公升至有序區
如此重複,n個數的排列進行n-1此以後 有序區為n 無序區為零 完成排序
三、基礎**實現
int a[10]=;
int n=sizeof(a)/sizeof(int );
for(int i=n-1;i>0;i--)
}}
四、優化**實現
1.外部優化
int flag=0;
for(int i=n-1;i>0;i--)
}if(flag==0)
return 0;
}
此種優化的思想就是當待排序資料已經有序時,不再進行排序;
2.內部優化
int flag=0;
int k=n;
int max_index=0;
for(int i=k-1;i>0;i--)
}k=max_index;
if(flag==0)
return 0;
}
補充:氣泡排序的演算法複雜度為o(n^2),是一種穩定排序演算法 八大排序之氣泡排序及其優化
氣泡排序作為我們接觸的第乙個排序演算法,相信大部分人都非常熟悉。氣泡排序演算法的運作如下 從後往前 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續...
八大排序之氣泡排序
氣泡排序,穩定,平均與最壞時間複雜度為o n 2 最好為o n 空間複雜度為o 1 include using namespace std void bubblesort int numbers,const int length int main int length 0 cin length fo...
八大排序之氣泡排序
1 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。3 針對所有的元素重複以上的步驟,除了最後乙個。4 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。1.不管原始陣列是否...