1)氣泡排序(bubble sort)
演算法描述
比較相鄰的元素。如果第乙個比第二個大,就交換它們兩個;
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應該會是最大的數;
針對所有的元素重複以上的步驟,除了最後乙個;
重複步驟1~3,直到排序完成。
**實現
public2)選擇排序(selection sort)選擇排序的交換次數要遠遠少於氣泡排序,平均效能優於氣泡排序class
bubblesort ;
for (int end = array.length-1;end>0;end--)}}
for (int i =0;i)}}
演算法描述
從序列中找出最大的元素,然後與最末尾的元素交換位置
忽略1中曾經找到的最大元素,重複執行步驟1
**實現
public3)插入排序(insertion sort)演算法描述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)}}
在執行過程中,插入排序會將序列分為2部分:頭部是已經排好序的,尾部是待排序的
從頭開始掃瞄每乙個元素,每當掃瞄到乙個元素,就將它插入到頭部合適的位置,是的頭部資料依然保持有序
**實現
public4)歸併排序class
insertionsort ;
for (int begin=1;begin)
}for (int i =0;i)}}
8 排序演算法 堆排序
堆排序 heapsort 是指利用堆這種資料結構所設計的一種排序演算法。堆積是乙個近似完全二叉樹的結構,並同時滿足堆積的性質 即子結點的鍵值或索引總是小於 或者大於 它的父節點。堆排序可以說是一種利用堆的概念來排序的選擇排序。分為兩種方法 堆排序的平均時間複雜度為 nlogn 1.演算法步驟 建立乙...
8 排序演算法的各種詳解
1.插入排序時間複雜度為o n2 最壞情況 插入排序原理很簡單,講一組資料分成兩組,我分別將其稱為有序組與待插入組。每次從待插入組中取出乙個元素,與有序組的元素進行比較,並找到合適的位置,將該元素插到有序組當中。就這樣,每次插入乙個元素,有序組增加,待插入組減少。直到待插入組元素個數為0。當然,插入...
JavaSE學習 8 排序
1 內部排序 將需要處理的所有資料都載入到內部儲存器中進行排序 交換式排序法 選擇式排序法和插入式排序法 2 資料量過大,無法全部載入到記憶體中,需要借助外部儲存進行排序。合併排序和直接合併排序 排序 就是把一組記錄 元素 按照某個域的值遞增或遞減的次序重新排列的過程。交換式排序 屬於內部排序,運用...