8 排序演算法

2022-06-18 22:18:21 字數 1269 閱讀 1378

1)氣泡排序(bubble sort)

演算法描述

比較相鄰的元素。如果第乙個比第二個大,就交換它們兩個;

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應該會是最大的數;

針對所有的元素重複以上的步驟,除了最後乙個;

重複步驟1~3,直到排序完成。

**實現

public

class

bubblesort ;

for (int end = array.length-1;end>0;end--)}}

for (int i =0;i)}}

2)選擇排序(selection sort)選擇排序的交換次數要遠遠少於氣泡排序,平均效能優於氣泡排序

演算法描述

從序列中找出最大的元素,然後與最末尾的元素交換位置

忽略1中曾經找到的最大元素,重複執行步驟1

**實現

public

class

selectionsort ;

for (int end=array.length-1;end>0;end--)

}int tmp =array[end];

array[end] =array[maxindex];

array[maxindex] =tmp;

}for (int i =0;i)}}

3)插入排序(insertion sort)演算法描述

在執行過程中,插入排序會將序列分為2部分:頭部是已經排好序的,尾部是待排序的

從頭開始掃瞄每乙個元素,每當掃瞄到乙個元素,就將它插入到頭部合適的位置,是的頭部資料依然保持有序

**實現

public

class

insertionsort ;

for (int begin=1;begin)

}for (int i =0;i)}}

4)歸併排序

8 排序演算法 堆排序

堆排序 heapsort 是指利用堆這種資料結構所設計的一種排序演算法。堆積是乙個近似完全二叉樹的結構,並同時滿足堆積的性質 即子結點的鍵值或索引總是小於 或者大於 它的父節點。堆排序可以說是一種利用堆的概念來排序的選擇排序。分為兩種方法 堆排序的平均時間複雜度為 nlogn 1.演算法步驟 建立乙...

8 排序演算法的各種詳解

1.插入排序時間複雜度為o n2 最壞情況 插入排序原理很簡單,講一組資料分成兩組,我分別將其稱為有序組與待插入組。每次從待插入組中取出乙個元素,與有序組的元素進行比較,並找到合適的位置,將該元素插到有序組當中。就這樣,每次插入乙個元素,有序組增加,待插入組減少。直到待插入組元素個數為0。當然,插入...

JavaSE學習 8 排序

1 內部排序 將需要處理的所有資料都載入到內部儲存器中進行排序 交換式排序法 選擇式排序法和插入式排序法 2 資料量過大,無法全部載入到記憶體中,需要借助外部儲存進行排序。合併排序和直接合併排序 排序 就是把一組記錄 元素 按照某個域的值遞增或遞減的次序重新排列的過程。交換式排序 屬於內部排序,運用...