Fork me on GitHub

选择排序

概述

  如果给我们一个数组,让我们把这个数组中的数从小到大排序,如果我们没有学习过什么排序算法,估计这个算法是我们最容易想到的,这个算法由于很容易想到,所以效果并不好,时间复杂度为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]);
        }
    }
}

总结

  连续写了快速排序,插入排序,冒泡排序,选择排序,我发现越是容易想到的效果越差, 这也和我们生活相似,越是容易得到的我们就越不懂得珍惜,为什么呢?因为太廉价,但是生活毕竟不是算法,生活是这样,只有当我们失去的时候我们才知道宝贵,比如我们的青春,我们的父母的爱。。。

 

posted @ 2020-07-06 20:55  猿起缘灭  阅读(157)  评论(0编辑  收藏  举报