前一段时间看到了一片文章《为什么我们要像驯化小狗狗一样驯化算法》,就一直在想我是否需要重头开始做一遍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 + "、");}}}

看完感觉怎么样,你是否想起了她?

回顾篇之Java的插入排序相关推荐

  1. 【Java基础知识回顾篇】之打怪升级Day001

    Java基础知识回顾篇之打怪升级Day001 目录 Java基础知识回顾篇之打怪升级Day001 简介 一.为什么现在主流的是Java8和Java11? 二.简单尝试编写java程序 1.编写一个He ...

  2. java = 优化_Java9系列第7篇:Java.util.Optional优化与增强 - 字母哥博客 - 博客园

    我计划在后续的一段时间内,写一系列关于java 9的文章,虽然java 9 不像Java 8或者Java 11那样的核心java版本,但是还是有很多的特性值得关注.期待您能关注我,我将把java 9 ...

  3. java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...

    23种设计模式第二篇:java工厂模式 定义: 工厂模式是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 工厂模式主要是为创建对象提供过渡接口, ...

  4. java单线程循环调度_Java基础篇之Java线程模型

    原标题:Java基础篇之Java线程模型 Java运行系统在很多方面依赖于线程,所有的类库设计都考虑到多线程.实际上,Java使用线程来使整个环境异步.这有利于通过防止CPU循环的浪费来减少无效部分. ...

  5. Java高级篇——深入浅出Java类加载机制

    转载自 Java高级篇--深入浅出Java类加载机制 类加载器 简单讲,类加载器ClassLoader的功能就是负责将class文件加载到jvm内存. 类加载器分类 从虚拟机层面讲分为两大类型的类加载 ...

  6. java peek函数_基础篇:JAVA.Stream函数,优雅的数据流操作

    写在开头:本文是转载于掘金上的一篇文章,已获得原作者授权,我会在文章最后放上原作者和原文链接. 前言 平时操作集合数据,我们一般都是for或者iterator去遍历,不是很好看.java提供了Stre ...

  7. Java核心篇之Java锁--day2

    Java核心篇之Java锁–day2 乐观锁:乐观锁是一种乐观思想,即认为读多写少,每次去取数据的时候都认为其他人不会修改,所以不会上锁:但是在更新的时候会判断一下在此期间别人有没有去修改它,如果有人 ...

  8. java语言 爱我,语言篇:Java环境

    语言篇:Java环境 Java是什么? Java 是一项用于开发应用程序的技术语言,可以让 Web 变得更有意思和更实用.使用 Java 可以玩游戏.上载照片.联机聊天以及参与虚拟体验,并能够使用联机 ...

  9. java中插入排序_Java中的插入排序

    java中插入排序 Today we will look into the Insertion Sort Java program. Insertion sort is similar to Bubb ...

最新文章

  1. mysql从入门到精通之数据库安装图解
  2. 机器学习笔记:高斯判别分析
  3. 第5课 - 线性表的本质
  4. C# 图片加水印例程
  5. CF700E-Cool Slogans【SAM,线段树合并,dp】
  6. Codeforces 864E Fire(背包DP)
  7. cakephp 1.3 Views
  8. “.NET研究”关于C# 中的Attribute 特性
  9. 机器学习课程笔记【十三】- 独立成分分析
  10. php utf8 gbk 数组 互转
  11. 2022级sdut知到/智慧树---c语言第一章测试题解
  12. ThinkPad工程师回答
  13. 永磁同步电机PMS直接转矩控制 Matlab/Simulink仿真模型
  14. 中大型企业的固定资产管理办法
  15. 1.1 第一课:操作示范 [Ps教程]
  16. 模拟电子经典200问
  17. 码出高效:Java开发手册PDF
  18. STM32常用协议之串口通信详解
  19. 1069 微博转发抽奖
  20. 2016京东校园招聘在线笔试回忆版

热门文章

  1. 联想V470 ubuntu 12.04 LTS开机屏幕亮度设置
  2. HDU 6203 ping ping ping (LCA+DFS序)
  3. 短视频怎么剪辑?教你三招,制作让人眼前一亮的短视频
  4. 地源热泵户式中央空调经济性分析
  5. 0717 抽象类/接口/异常/==-equals()/搜索字符串/包装类型(统计字符数)/hashCode()/StringBuffer/pingSQL/2018年美式日历
  6. linux cacti监控tomcat,Cacti监控Tomcat服务器实现过程
  7. 理论计算机科学逻辑博导,软件学院研究生论文导师一览表
  8. 某程序员吐槽培训班简历造假,应届变三年,拿阿里外包高薪offer
  9. Vue全家桶:路由 vue-router
  10. 2年工作经验的Java程序员面试经历