氣泡排序再學習改進氣泡排序(c )

2022-08-30 11:30:14 字數 1808 閱讀 4071

編譯器:dev-c++ 5.11

#includeusing namespace std;

int main()

; for(int i=0;i<10;i++)

for(int j=0;j<10-i-1;j++) }

for(int i=0;i<10;i++)

cout<

compilation results...

--------

- errors: 0

- warnings: 0

- output filename: f:\dev 程式\**\sort.exe

- output size: 1.83190059661865 mib

- compilation time: 1.00s

執行結果:

3 3 4 5 5 7 77 199 654 688

--------------------------------

process exited after 0.3036 seconds with return value 0

加入一標誌性變數position,用於標誌某一趟排序過程中是否有資料交換,如果進行某一趟排序時並沒有進行資料交換,則說明資料已經按要求排列好,可立即結束排序,避免不必要的比較過程純淨版**:

#includeusing namespace std;

int main()

; int i=10;

while(i>0)

i=position;

} for(i=0;i<10;i++)

cout<

compilation results...

--------

- errors: 0

- warnings: 0

- output filename: f:\dev 程式\**\sort.exe

- output size: 1.83208656311035 mib

- compilation time: 0.92s

執行結果:33

4557

2677

199654

--------------------------------

process exited after 0.303 seconds with return value 0

#includeusing namespace std;

int main()

; int i=10;

while(i>0)

; int high=10-1;

int low=0;

while(lowa[j+1])

--high;

for(int j=high;j>low;--j)

if(a[j]

#includeusing namespace std;

int main()

; int high=10-1;

int low=0;

while(lowa[j+1])

--high;

// for(int j=high;j>low;--j)

//// if(a[j]

氣泡排序 改進

氣泡排序是最簡單的排序演算法之一,在這裡首先要說明的是乙個要注意的地方。氣泡排序在最好情況下時間複雜度可以是o n 2 也可以是o n 下面看一種大家看得最多的寫法 public void bubblesort int arr 上面這樣寫最好情況下也是o n 2 那麼再來看下面這種寫法 public...

排序演算法 氣泡排序(改進)

假如我們運氣好,用了1輪就已經將整個序列排序好了,整個數列已然是有序的了。可是我們的排序演算法仍然 兢兢業業 地繼續執行第2輪 第3輪 直至n 1輪,這就很沒必要。也就是說如果序列已經有序,每一輪排序還是會繼續比較相鄰的元素,這就相當於做了一些沒用的操作。這種情況下,如果我們能判斷出數列已經有序,並...

雙向氣泡排序(氣泡排序的改進優化)

思想 雙向氣泡排序 首先從前往後兩個兩個比較把大的數移到最後乙個位置,然後從後往前兩個兩個比較把小 的的數後往前推到陣列第乙個位置,這一過程就是第一輪這個時候第乙個位置就是陣列的 最小值,最後乙個位置就是陣列的最大值了然後把front behind 在front與 behind之間再重複操作上述過程...