选择排序
概述
如果给我们一个数组,让我们把这个数组中的数从小到大排序,如果我们没有学习过什么排序算法,估计这个算法是我们最容易想到的,这个算法由于很容易想到,所以效果并不好,时间复杂度为O(n2),白瞎,基本没人用。
核心思想
第一步:遍历数组,把最小的元素找出来,和数组中的第一个元素交换位置
第二步:遍历数组,把次小的元素找出来,和数组中的第二个元素交换位置
...
第N步:......
由于这个算法太简单,就不举例了,直接上代码,代码如下
代码实现
/** * @author: steve * @date: 2020/7/6 20:35 * @description: 选择排序 */ public class SelectSort { public static int array[] = {72, 6, 57, 88, 60, 42, 83, 73, 48, 8, 1}; public static void selectSort(){ int min; for (int i = 0; i < array.length-1; i++) { min = i; for (int j = i+1; j < array.length; j++) { if (array[j] < array[i]){ min = j; } } if (min != i){ swap(i,min); } } } public static void swap(int i, int j){ int temp = 0; temp = array[i]; array[i] = array[j]; array[j] = temp; } public static void main(String[] args) { selectSort(); for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } } }
总结
连续写了快速排序,插入排序,冒泡排序,选择排序,我发现越是容易想到的效果越差, 这也和我们生活相似,越是容易得到的我们就越不懂得珍惜,为什么呢?因为太廉价,但是生活毕竟不是算法,生活是这样,只有当我们失去的时候我们才知道宝贵,比如我们的青春,我们的父母的爱。。。