选择排序算法
思路
首先在整个数组中找到最小的元素放在第一位,然后在剩下的元素中查找最小的放在第二位,以此类推,时间复杂度为O(n^2)
java
代码实现:
public class SelectionSort {
public static int[] solution(int[] arr) {
if (arr == null || arr.length == 0) {
return null;
}
//遍历整个数组,
for (int i = 0; i < arr.length; i++) {
int k = i;
//每次确定一个最小的元素的位置
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[k]) {
k = j;
}
}
//说明k被更改过,有比arr[i]更小的元素,此时需要交换两者位置
if (k != i) {
int temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
return arr;
}
}