选择排序算法比较简单直观,核心思想就像列兵战队一样,谁长的矮谁就往前站。
算法描述:
- 在待排序的队列中查找关键字最小的元素;
- 如果关键字最小的元素下标不是待排序的第一个元素,则将其与第一个元素交换位置;
- 在余下的待排序队列中,重复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);
}
}
}
}