1.概述
氣泡排序,是一種交換排序,他的基本思想是:兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。
2.第一種實現:
void swap(int a,int i,int j)
void bubble_sort(int a,int length)
}
實現比較簡單但效率比較低下。
正宗的氣泡排序:
void swap(int a,int i,int j)
void bubble_sort(int a,int length)
若待排序列是,則當i=0時就交換了i和j,此時序列已經有序了,但是i=1到8還是會迴圈執行一遍,儘管沒有交換資料。
將上面演算法進行改進,沒有任何資料交換的時候就不要再迴圈了。增叫乙個標記變數。
void swap(int a,int i,int j)
void bubble_sort(int a,int length)
}}
避免了有序情況下的無意義的迴圈判斷。
3.分析
若序列是完全有序的,則需要n-1次的比較,time=o(n);
若序列是逆序的,則需要:time=o(n2)。
氣泡排序 排序 氣泡排序
既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...
氣泡排序 氣泡排序法
冒泡法是一種簡單的排序方法,它的實現非常簡單。首先對n個專案進行掃瞄,比較相領兩個專案的大小,若發現違背大小次序則進行互換,由此可以使n個專案中的最大者換到最後。然後對剩下的未排序好的專案再進行掃瞄,使它們的最大者換到表的最後。以此類推,直到將表全部排序好為止。這種排序方法,每遍掃瞄以後,都縮短了待...
排序 氣泡排序
氣泡排序 氣泡排序 bubble sort 是一種 電腦科學 領域的較簡單的 排序演算法 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。原理是臨近的數字兩兩進行比較,按照從小到大或者從大到小...