`

Java插入排序代码整理

阅读更多
package boke.sort;

/**
 * 插入排序
 * 
 * @since jdk1.5及其以上
 * @author 毛正吉
 * @version 1.0
 * @date 2010.05.24
 * 
 */
public class InsertSort {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int maxSize = 100;
		InsertSort bs = new InsertSort(maxSize);

		bs.insert(77);
		bs.insert(66);
		bs.insert(22);
		bs.insert(99);
		bs.insert(85);
		bs.insert(37);
		bs.insert(75);
		bs.insert(64);
		bs.insert(15);
		bs.insert(35);

		bs.output(); // 原始输出
		bs.insertSort(); // 排序
		bs.output(); // 排序输出

	}

	private long[] a; // 整型数据容器
	private int nElems; // 元素个数

	/**
	 * 构造方法
	 * 
	 * @param maxSize
	 */
	public InsertSort(int maxSize) {
		a = new long[maxSize];
		nElems = 0;
	}

	/**
	 * 容器放入数据
	 * 
	 * @param value
	 */
	public void insert(long value) {
		a[nElems++] = value;
	}

	/**
	 * 输出容器数据
	 */
	public void output() {
		for (int j = 0; j < nElems; j++) {
			System.out.print(a[j] + " ");
		}
		System.out.println("");
	}

	/**
	 * 插入排序
	 */
	public void insertSort() {
		int out, in;

		for (out = 1; out < nElems; out++) {
			long temp = a[out];
			in = out;
			
			while (in > 0 && a[in-1] >= temp) {
				a[in] = a[in - 1];
				--in;
			}
			
			a[in] = temp;
		}
	}
}
分享到:
评论

相关推荐

    java核心知识点整理.pdf

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

    韩顺平javase的四种排序法(冒泡,选择,插入,快速)

    韩老师的javase的四种排序法,感觉讲的很好。自己整理了一下,保证无误,分享给大家。

    java面试过程当中遇到的一些题目

    15. 用插入法进行排序代码如下 13 16. 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该...

    java面试题(面试 宝典)

    15. 用插入法进行排序代码如下 13 16. 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该...

    尚硅谷老韩java版算法和数据结构讲解代码笔记整理.zip

    算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...

    JAVA核心知识点整理(有效)

    标记整理算法(Mark-Compact).................................................................................................. 28 分代收集算法 ..............................................................

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    关于java程序员发展需要学习的路线整理集合 技术 应用技术 计算机基础知识 cpu mem disk net 线程,进程 第三方库 poi Jsoup zxing Gson 数据结构 树 栈 链表 队列 图 操作系统 linux 代码控制...

    积分兑换系统java源码-leetcode:每天坚持两道题,整理数据结构与算法相关代码

    主要分为Array,链表,栈,队列,二叉树,图,排序,递归,贪心,分治,动态规划,回溯。 一、数组 数组是一种线性表数据结构,用一组连续的内存空间来存储一组具有相同类型的数据。其最大特点是支持随机访问,但...

    Java学习笔记-个人整理的

    {1.11.2.3}插入排序}{40}{subsubsection.1.11.2.3} {1.11.3}递归调用}{41}{subsection.1.11.3} {1.12}Java API}{41}{section.1.12} {1.13}Linux命令}{41}{section.1.13} {1.13.1}基本查看、移动}{41}{...

    java笔试题算法-AlgorithmCode:本仓库整理了LeetCode和剑指offer上的算法题目以及参考代码

    插入排序 yes N ~ N2 1 时间复杂度和初始顺序有关 希尔排序 no N 的若干倍乘于递增序列的长度 1 快速排序 no NlogN logN 三向切分快速排序 no N ~ NlogN logN 适用于有大量重复主键 归并排序 yes NlogN N 堆排序 no ...

    JAVA面试题最全集

    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例053 使用直接插入法 65 实例054 使用sort方法对数组进行排序 67 实例055 反转数组中元素的顺序 68 3.4 常用集合的使用 69 实例056 用动态数组保存学生姓名 69 实例057 用List集合传递学生信息 70 实例058 用...

    每天坚持两道题,整理数据结构与算法相关代码.zip

    算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...

    net学习笔记及其他代码应用

    29.根据线程安全的相关知识,分析以下代码,当调用test方法时i&gt;10时是否会引起死锁?并简要说明理由。 public void test(int i) { lock(this) { if (i&gt;10) { i--; test(i); } } } 答:不会发生死锁,(但...

    易语言程序免安装版下载

    修改高级表格支持库,解决插入行/插入列在未指定行号/列号的情况下插入位置不正确的BUG。 7. 修改文本语音转换支持库,增加“机读文本.重新创建并初始化()”方法。 8. 修改应用接口支持库,增强“取快捷方式目标...

Global site tag (gtag.js) - Google Analytics