Java基础知识强化54:经典排序之插入排序(InsertSort)
2015-09-24 10:01
323 查看
1. 插入排序原理图:
[b]算法步骤:[/b]
1)将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
2)从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。
2. 插入排序的代码实现:
[b]算法步骤:[/b]
1)将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
2)从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。
2. 插入排序的代码实现:
package cn.itcast; /* * 插入排序基本思想 * 将n个元素的数列分为已有序和无序两个部分,如插入排序过程示例下所示: * {{a1},{a2,a3,a4,…,an}} * {{a1⑴,a2⑴},{a3⑴,a4⑴ …,an⑴}} * {{a1(n-1),a2(n-1) ,…},{an(n-1)}} * 每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较, * 找出插入位置,将该元素插入到有序数列的合适位置中。 */ public class InsertSort { public static void sort(int[] data) { for (int i = 1; i < data.length; i++) { for (int j = i; (j > 0) && (data[j] < data[j - 1]); j--) { swap(data, j, j - 1); } } } /* * 交换数组中的两个元素 */ public static void swap(int[] data, int i, int j) { int temp = data[i]; data[i] = data[j]; data[j] = temp; } }
相关文章推荐
- java Double 类
- Java语言中有无穷大
- javaee基本环境搭建
- eclipse maven plugin 插件 安装 和 配置
- mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题
- eclipse maven update project 相关问题
- Java String处理入门 - null或空值的判断处理
- java.util.NoSuchElementException解决办法
- Java于 初始化序列?
- Java学习笔记
- 在java项目文件读取数据库文件prodect.xml信息
- spring mvc综合easyui点击上面菜单栏中的菜单项问题
- java根据jar包反编译后修改再打包回jar的做法
- 给java项目改名字
- 使用 JavaFX 快速创建应用程序
- Java基础知识强化53:经典排序之选择排序(SelectionSort)
- 将java log4j的日志配置输出到mysql中
- java集合类中的迭代器
- SimpleDateFormat使用详解 java
- 深入理解Java:注解(Annotation)--注解处理器