选择排序
- 首先在没有排序的数列里找出最小的元素,并把它放到这一组数列最开始的位置;
- 接着就是把剩余没有排序的元素里继续寻找最小的元素,把它放在已经排序好的序列的后面依次类推,直到最后面把所有的元素都排序完。
- 时间复杂度:相比较与冒泡排序的话,每次做比较之后,都是更新
了最小值的下标,每轮的循环,值最多只做了一次交换。在时间上
获得了提示。但是的话因为要使用双重循环,所以它的时间复杂度
还是和冒泡一样O(n^2)。
import java.util.Arrays;
public class QuickSortDemo {
public static void main(String[] args) {
int[] arr = new int[]{9, 1, 3, 2, 4, 6, 5, 8, 7};
quickSort(arr);
System.out.println(Arrays.toString(arr));
}
public static int[] quickSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int k = i;
for (int j = k + 1; j < arr.length; j++) {
if (arr[j] < arr[k]) {
k = j;
}
}
if (i != k) {
int temp;
temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
System.out.println("第" + i + "轮排序结果:" + Arrays.toString(arr));
}
return arr;
}
}