103. 冒泡排序

基本思想

第一趟在序列(A[0] ~ A[n-1])中從前往后進(jìn)行相鄰兩個(gè)元素的比較,若后者小,則交換,比較n-1次;第一趟排序結(jié)束,最大元素被交換到A[n-1]中(即沉底),下一趟排序只需要在子序列(A[0]~A[n-2])中進(jìn)行;如果在某一趟排序中未交換元素,說(shuō)明該序列已有序,則不再進(jìn)行下一趟排序。

解題之法

template <class T>
void BubbleSort (T A[], int n){
    int i, j ,last;
    i = n - 1;
    while(i > 0){
        last = 0;
        for ( j = 0; j < i; j++){
          if(A[j+1] < A[j]){
            Swap(A[j], A[j + 1]);
            last = j;
}
}
    i = last;
}
}

復(fù)雜度

O(n*n) 穩(wěn)定的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,746評(píng)論 0 15
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,222評(píng)論 0 52
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個(gè)記錄插入到已排序好...
    依依玖玥閱讀 1,285評(píng)論 0 2
  • 排序的基本概念 在計(jì)算機(jī)程序開發(fā)過(guò)程中,經(jīng)常需要一組數(shù)據(jù)元素(或記錄)按某個(gè)關(guān)鍵字進(jìn)行排序,排序完成的序列可用于快...
    Jack921閱讀 1,460評(píng)論 1 4
  • 一、 單項(xiàng)選擇題(共71題) 對(duì)n個(gè)元素的序列進(jìn)行冒泡排序時(shí),最少的比較次數(shù)是( )。A. n ...
    貝影閱讀 9,253評(píng)論 0 10