排序算法(二) 选择排序

选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(大)元素,
然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

代码如下:

/**
* @data 2021/3/9 - 14:13
*/
public class 选择排序法 {
public static void main(String[] args) {
int[] a = {1, 2, 5, 4, 7, 0, 0, 4, 5, 8, 1, 4, 2, 6, 4};
for (int i = 0; i < a.length; i++) {
for (int j = i+1; j < a.length; j++) { //这里内层循环j的初始值应该等于i+1,因为选择排序法每次都是将排好的放在未排的元素前面,所以内存索引从i+1,也就是外层索引的当前值=1开始(从i开始也可以)
if (a[i] < a[j]) {
int b = a[i];
a[i] = a[j];
a[j] = b;
}
}
}
for (int i : a) {
System.out.println(i);
}

}
}

选择排序的思路跟冒泡排序的思路很相似,可以说冒泡排序是选择排序的升级版本
选择排序的最大时间复杂度和最小时间复杂度是一样的,都是O(n*n),因为他的时间复杂度十分大,不适合用来做大量数据的排序
空间复杂度是O(1)
posted @ 2021-03-09 14:33  小猫爱哭鬼  阅读(44)  评论(0编辑  收藏  举报