氣泡排序
氣泡排序的主要原理是兩兩比較,將較大者放在靠後的位置,用此種方法,將最大的值一點一點推到數列的後端。因此,對於乙個長為n的陣列,經過n-1遍冒泡,一定能將陣列排序。
時間複雜度:設t(n)為對長度為n的待排序列進行排序的時間。
則比較次數為:n-1 + n-2 + ... + 1 = (n-1) * n / 2 = o(n^2) 而且,無論陣列排序狀況如何,都要進行這麼多次的比較
交換次數:最理想的情況下,只用對陣列進行比較,不用進行排序。
最壞情況下,陣列為倒序排列,則需要進行 (n-1) * n /2 = o(n^2) 次交換
class solution:
def bubble_sort(self, nums):
lens = len(nums)
for i in range(lens - 1):
for j in range(lens - i - 1):
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
print(nums)
return(nums)
if __name__ == "__main__":
sol = solution()
res = sol.bubble_sort([9,7,5,3,2,7,5,4,23,9,56,67,23,11])
print(res)
時間複雜度:設t(n)為對長度為n的待排序列進行排序的時間。
則比較次數為:n-1 + n-2 + ... + 1 = (n-1) * n / 2 = o(n^2) 而且,無論陣列排序狀況如何,都要進行這麼多次的比較
交換次數:最理想的情況下,只用對陣列進行比較,不用進行排序。
最壞情況下,陣列為倒序排列,則需要進行 (n-1) * n /2 = o(n^2) 次交換
資料結構 氣泡排序
起泡排序的過程很簡單。首先將第乙個記錄的關鍵字和第二個記錄的關鍵字進行比較,若為逆序,則將兩個記錄交換之,然後比較第二個記錄和第三個記錄的關鍵字。依次類推,直至第n 1個記錄和第n個記錄的關鍵字進行比較為止。上述過程稱作第一趟起泡排序,其結果使得關鍵字最大的記錄被安置到最後乙個記錄的位置上。然後進行...
資料結構 氣泡排序
氣泡排序演算法的基本思想是 假設待排序表長為n,從後往前 或從前往後 兩兩比較相鄰元素的值,若為逆序 即a i 1 a i 則交換它們,直到序列比較完。我們稱它為一趟冒泡,如果將最小的元素交換到待排序序列的第乙個位置 關鍵字小的元素往上 漂浮 這就是氣泡排序名字的由來 下一趟冒泡時,前一趟確定的最小...
資料結構 氣泡排序
目標效果 原始碼 include void print out int a,int n void bubble sort int a,int n int main printf 起泡排序 n printf 排序前 n printresult a,10 排序方法 bubblesort a,10 pri...