八大排序之氣泡排序(含兩種優化方式)

2021-08-30 06:44:27 字數 781 閱讀 8456

一、演算法思想:

氣泡排序是交換排序中一種簡單的排序方法  基本思路就是按照想要的序列方式(增序或降序)對相鄰的兩個關鍵字進行比較,不滿足目的序列要求的兩個關鍵字進行交換。

二、處理過程:

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.不管原始陣列是否...