回顾篇之Java的插入排序-阿里云开发者社区

开发者社区> 沉默王二> 正文

回顾篇之Java的插入排序

简介: 回顾篇之Java的插入排序
+关注继续查看

 前一段时间看到了一片文章《为什么我们要像驯化小狗狗一样驯化算法》,就一直在想我是否需要重头开始做一遍Java的基本算法排序,无论自己现在水平几何,都要回顾这些经典的,值得回味的程序片段。


      那么接下来我们就一睹为快了,看看你是否已经忘记了她,还是她依然活在你深深的脑海里。

package com.honzh.mwq.sort;
 
/**
 * 插入排序(原则就是当前位置的数和前面位置的数进行比较,如果当前位置的数小于之前的数,则交换位置).
 * 
 * @author qinge
 * 
 */
public class Inserting {
 
    public static void main(String[] args) {
        // 数组元
        int[] orgins = { 2, 1, 5, 4, 9, 8, 6, 7, 10, 3, 3 };
        
        // 排序前的数
        for (int num : orgins) {
            System.out.print(num + "、");
        }
        System.out.println();
 
        // 从第二个位置开始,因为第一个位置和他前面的位置(0个位置)相比,肯定为最小
        for (int index = 1; index < orgins.length; index++) { // 复杂度为数组元的长度,或者说n
            // 当前数
            int curValue = orgins[index];
 
            // 前一位的下标
            int preIndex = index - 1;
 
            // 当前数和前一位数相比,如果小,则交换位置,当前数继续和前一位数的前一位相比
            while (preIndex >= 0 && curValue < orgins[preIndex]) {// 复杂度为1+2+3+...+(n-1)
                // 前一位数的下一位等于前一位的数
                orgins[preIndex + 1] = orgins[preIndex];
 
                // 前一位的数等于当前数
                orgins[preIndex] = curValue;
 
                // 继续(前一位的前一位)
                preIndex = preIndex - 1;
            }
        }
 
        // 排序后的数
        for (int num : orgins) {
            System.out.print(num + "、");
        }
    }
 
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
一文快速搞定Redis_数据类型及JavaApi操作
大家好,我是**ChinaManor**,直译过来就是中国码农的意思,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。
9 0
偏序关系
偏序 关系 离散数学
6 0
PG+MySQL第9课-实时精准营销
通常业务场景会涉及基于标签条件圈选目标客户、基于用户特征值扩选相似人群、群体用户画像分析这些技术,本文将围绕这三个场景去介绍在实施精准营销里面的PG数据库的使用
8 0
Java classloader详解
Java程序并不是一个可执行文件,而是由很多的Java类组成,其运行是由JVM来控制的。而JVM从内存中查找到类,而真正将类加载进内存的就是ClassLoader,可以说我们每天都在接触ClassLoader,但是很多时候我们没有明白其执行的流程和原理。
8 0
冬季实战营第一期学习报告
通过五天学习与实操,对ECS云服务器入门、快速搭建LAMP环境、部署MySQL数据库、回顾搭建Docker环境和Spring Boot以及使用PolarDB和ECS搭建门户网站操作,对本期学习与实操的认识。
9 0
冬季实战营第一期:从零到一上手玩转云服务器实验报告
第一期主要进行了六次实验,分别是《动手实操ECS云服务器》、《动手实操快速搭建LAMP环境》、《使用ECS服务器部署MySQL数据库》、《通过workbench远程登录ECS,快速搭建Docker环境》、《从零搭建Spring Boot的Hello World》以及《使用PolarDB和ECS搭建门户网站》。首先远程登陆ECS实例,搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。然后配置及远程访问MySQL。冯晓帅老师在直播上带大家通过workbench登录ECS并快速搭建Docker环境,运行Spring Boot,最后安装WordPress并搭建博客。
9 0
研发职位到底应该怎么设置?(下)
研发职位到底应该怎么设置?(下)
5 0
我的ECS使用体验
在阿里云ECS服务器使用中学习和收获了很多。
11 0
架构修炼之道 | 一个传统网关系统有几种 “死” 法(上)
架构修炼之道 | 一个传统网关系统有几种 “死” 法(上)
6 0
冬季实战营第一期:从零到一上手玩转云服务器学习总结
冬季实战营第一期:从零到一上手玩转云服务器学习总结
8 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载