时间复杂度:O(n2)
// 找出当前集合最小的数
public static Integer findMinNumber(LinkedList<Integer> arr) {
int min = arr.get(0);
for (int i = 0; i < arr.size(); i++) {
if (arr.get(i) < min) {
min = arr.get(i);
}
}
return min;
}
// 把找到的最小元素插入最新链表中,并在原来集合中删除这个元素
public static LinkedList<Integer> selectionSort (LinkedList<Integer> arr) {
LinkedList<Integer> newArr = new LinkedList<>();
int arrSize = arr.size();
// 一共把这n个元素 进行n次插入操作 插入到新链表中
for (int i = 0; i < arrSize; i++) {
Integer min = findMinNumber(arr);
newArr.add(min);
// 原来集合删除找到的最小元素,使得下次少找一个元素
arr.remove(min);
}
return newArr;
}
补充:
List的remove()方法
当传入的参数为int类型,按索引(index)删除集合元素
当出入的参数为Integer类型,按元素删除