`
qing_gee
  • 浏览: 118604 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

回顾篇之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 + "、");
		}
	}

}

 

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

2
0
分享到:
评论

相关推荐

    gasstationleetcode-cs102:[线性、树、图、DP]

    加油站 leetcode 课程大纲 - Java 基础 第一周 第二周 第三周 第四周 ...Java ...简单排序:插入排序是三者中最好的(比较,交换) 高级排序:快速排序(枢轴、就地、不稳定) 高级排序:MergeSort(低+高

    simple-algorithms:算法评论

    简单算法 关于 简短的算法回顾使用Java,包括在最佳和最差情况下每种算法的步骤数,时间复杂度和运行时间。 演算法 快速排序 合并排序 堆排序 气泡排序 插入排序 选择排序 基数排序 Timsort

    算法:竞争性编程所需的算法

    内容:搜索算法线性搜寻二进制搜索三元搜索排序算法气泡排序选择排序插入排序合并排序快速分类基数排序Bogo排序最短路径算法迪克斯特拉弗洛伊德·沃沙尔通用数据结构堆队列叠数组链表使用的语言: C ++ PythonJavaC ...

    C++数据抽象和问题求解(第6版).[美]Frank M. Carrano(带详细书签).pdf

    11.1.3 插入排序 305 11.2 较快排序算法 307 11.2.1 归并排序 307 11.2.2 快速排序 312 11.2.3 基数排序 319 11.3 各种排序算法的比较 321 C++片段4 类关系和重用 325 C4.1 回顾继承 326 C4.1.1 类的公有、...

    SQL COOKBOOK(压缩1/2)

    在过去的10 年间,SQL 走过了很长的路,许多过去只能用C 和JAVA等过程化语言解决的典型问题现在都可以直接用SQL 解决了,但是很多开发人员并没有意识到这一事实。《SQL Cookbook中文版》就是要帮助大家认识到这一点...

    SQL COOKBOOK(压缩2/2)

    在过去的10 年间,SQL 走过了很长的路,许多过去只能用C 和JAVA等过程化语言解决的典型问题现在都可以直接用SQL 解决了,但是很多开发人员并没有意识到这一事实。《SQL Cookbook中文版》就是要帮助大家认识到这一点...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    1.3 SQL*Plus 回顾 3 1.3.1 连接到数据库 3 1.3.2 配置SQL*Plus环境 4 1.3.3 执行命令 6 1.4 5 个核心的SQL语句 8 1.5 SELECT语句 8 1.5.1 FROM子句 9 1.5.2 WHERE子句 11 1.5.3 GROUP BY子句 11 1.5.4 ...

    C#微软培训资料

    &lt;&lt;page 1&gt;&gt; page begin==================== 目 目目 目 录 录录 录 第一部分 C#语言概述.4 第一章 第一章第一章 第一章 .NET 编 编 ... 比尔....这一天 微软公司正式推出了其下一代...

    ORACLE9i_优化设计与系统调整

    第1章 ORACLE结构回顾 23 §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1 数据文件 26 §1.2.2 控制文件 26 §...

Global site tag (gtag.js) - Google Analytics