zoukankan      html  css  js  c++  java
  • 选择排序

    概述

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

    总结

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

  • 相关阅读:
    值得收藏的14款响应式前端开发框架
    简单几步把LOGO变字体
    7 款免费的 Metro UI 模板
    JPG渐进 & PNG/PNG24 交错测试
    你的钱,以后是放银行还是放支付宝?
    Bise IE6 在你的网站上加上它让IE滚蛋吧
    单例模式常见场景
    10 个最新的开发者工具
    大流量网站的底层系统架构
    DNS解析全过程及原理
  • 原文地址:https://www.cnblogs.com/gunduzi/p/13257451.html
Copyright © 2011-2022 走看看