選擇排序算法比較簡單直觀,核心思想就像列兵戰隊一樣,誰長的矮誰就往前站。
算法描述:
- 在待排序的隊列中查找關鍵字最小的元素;
- 如果關鍵字最小的元素下標不是待排序的第一個元素,則將其與第一個元素交換位置;
- 在餘下的待排序隊列中,重複1、2步驟,直到所有元素排序完成。
動態演示
算法實現
package com.lreis.algorithm.sort;
import java.util.List;
public class SelectionSort {
public void sort(List<Integer> items) {
if (items == null || items.isEmpty())
return;
for (int i = 0; i < items.size() - 1; i++) {
int min_index = items.get(i);
for (int j = i + 1; j < items.size(); j++) {
if (items.get(j) < items.get(min_index)) {
min_index = j;
}
}
if (min_index != i) {
int t = items.get(min_index);
items.set(min_index, items.get(i));
items.set(i, t);
}
}
}
}