編譯器:dev-c++ 5.11
#includeusing namespace std;加入一標誌性變數position,用於標誌某一趟排序過程中是否有資料交換,如果進行某一趟排序時並沒有進行資料交換,則說明資料已經按要求排列好,可立即結束排序,避免不必要的比較過程純淨版**: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
#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之間再重複操作上述過程...