氣泡排序
冒泡法也稱沉底法,沒相鄰兩個記錄關鍵字比較大小,大的記錄往下沉(也可以小的網上浮)。每一遍把最後乙個下沉的位置記下,下一遍只需檢查比較到此位置;到所有記錄都不發生變化時,整個過程結束(每交換一次,記錄減少乙個反序數)。
有一組資料( 83, 16, 9, 96, 27, 75, 42, 69,34 ),在開始時83與16互相比較,因為83>16,所以兩個元素互換,然後比較83>9,83與9互換,接著比較83<96,所以不變,然後互換的元素有(96,27),(96,75),(96,69)(96,34),所以在第一趟排序結束時找到最大的值96,把它放在最下面的位置。
重複每一趟排序都會將最大的乙個元素放在工作區域的最低位置,且每趟排序的工作區域都比前一趟排序少乙個元素,如此重複直到沒有互換產生才停止。
空間效率:o(1)
時間效率:總共要進行 n-1 趟冒泡,對 i 個記錄的表進行一趟冒泡需要 i-1 次關鍵字的比較。
總比較次數=1/2*n*(n-1)
移動次數=3/2*n*(n-1)
時間複雜度為o(n2)
氣泡排序是一種穩定排序。
用python實現氣泡排序與選擇排序
python氣泡排序 以公升序為例 s 0.1,3,9,5,2,6 for i in range 0,len s 1 for j in range i 1,len s if s i s j t s i s i s j s j t print s python選擇排序 以公升序為例 s 0.1,3,9...
用c 實現氣泡排序
現在假設有乙個陣列 3,5,7,2,4 那麼如果要想把它用冒泡從小到大排序,首先取3和5比較,3小於5 用5和7比較,5小於7 用7和2比較,7大於2 用7和4比較,7大於4 第0輪比下來陣列變為 3,5,2,4,7 比較了 5 1 次 第1輪還是依次比較陣列變為 3,2,4,5,7 比較了 5 2...
用shell實現氣泡排序
鍵盤輸入陣列值,對其進行氣泡排序 root localhost vim maopao.sh bin bash 氣泡排序k 0 while true doread p 是否需要輸入數值?do if do no then break firead p 請輸入第 k 1 個元素 key score k k...