基本思想:
兩兩比較,如果發生逆序則交換,直到所有記錄都排好序為止。
兩種方法:
起泡排序o(n*n)
快速排序o(nlog2n)
基本思想:每趟不斷將記錄兩兩比較,並按「前小後大」規則交換
優點:每趟結束時,不僅能擠出乙個最大值到最後面位置,還能同時部分理順其他元素;
一旦下趟沒有交換,還可以提前結束排序
int main(int argc, const char * ar**)
printf("\n");
for (j=1; j<=9; j++)
}for (i=1; i<11; i++)
}return 0;
}加入乙個標誌性變數flag,用於標誌某一趟排序過程中是否有資料交換,如果
進行某一趟排序時並沒有進行資料交換,則說明資料已經按要求排列好,可立即結束排序,避免不必要的比較過程。
void bubble_sort(sqlist &l)
m--;
}}設物件個數為n
比較次數和移動次數與初始排序有關
只需要1趟排序,比較次數為n-1,不移動
需要n-1趟排序,第i趟比較n-i趟,移動3(n-i)次
氣泡排序的介紹
氣泡排序指的是相鄰的兩個單位,比較儲存的資料,如果第乙個單元的資料較大,這兩個相鄰單元就交換儲存資料,直到排出正確的大小順序 js 以上 我們做了以下三個方面的優化,使得程式更簡單,執行的更順利 1,單次迴圈,最後乙個單元通過倒數第二個單元參與比較,最後乙個單元,就不參與單次迴圈 2,之前比較出的最...
氣泡排序介紹與分析
氣泡排序應該就是我們最開始學習並且最簡單的排序了,主要思想就是 假定這裡從小到大排序 從數列的第乙個元素開始一次與後面的元素比較 當然也可以選擇從最後乙個元素與往前面比較 如果比後者大側交換,達到最大數冒泡到最後乙個元素的位置 如果是比後者小側接著比較。這裡可以用乙個標誌exchange優化一下氣泡...
氣泡排序 排序 氣泡排序
既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...