Java排序算法优化--插入排序【温故而知新】
2014-04-16 17:00
113 查看
/** * * @author Fly */ public class InsertSort { public int[] insertSort(int[] a) { int size = a.length; int j; for (int i = 1; i < size; i++) { int temp = a[i]; for (j = 0; j < i; j++) { if (a[i] < a[j]) { break; } } for (int k = i; k > j; k--) { a[k] = a[k - 1]; } a[j] = temp; } return a; } public int[] insertSort1(int[] a) { int size = a.length; for (int i = 1; i < size; i++) { //标记当前需要比较的元素,也就是当前无序数组中的第一个元素 //j是有序数组中小于a[i]的元素 int temp = a[i], j; //循环继续的条件就是遇到比a[i]大的元素,如果没有了,说明找到了正确的位置 for (j = i; j > 0 && temp < a[j - 1]; j--) { a[j] = a[j - 1]; } //把a[i]的值给找到的那个元素 a[j] = temp; //其实这是一个连续交换的过程 } return a; } public void printArray(int[] a) { for (int i : a) { System.out.print(i + ","); } System.out.println(); } public static void main(String[] args) { int[] a = {2, 3, 1, 5, 7, 8, 9, 0, 11, 10, 12, 13, 14, 4, 6}; InsertSort insertSort = new InsertSort(); insertSort.printArray(a); insertSort.printArray(insertSort.insertSort(a)); insertSort.printArray(insertSort.insertSort1(a)); } }
相关文章推荐
- Myeclipse10下java.lang.OutOfMemoryError: Java heap space的解决办法
- Java jdk的安装及环境变量设置
- java中Writer的线程安全性
- Java基础:IO 流中的 flush
- [转]Java数组初始化详解
- java规范检查3个工具
- Java内存模型与线程规范(JSR 133)中文版
- Java日期工具类
- JAVA调用存储过程实现分页技术。。
- Eclipse快速入门:远程调试Java应用
- LeetCode:Longest Palindromic Substring
- java 集合 应用的小例子
- java程序去调用orcale存储过程
- java 事务
- mybatis+spring 使用不同方法备忘
- 使用Spring JdbcTemplate调用存储过程
- Java集合类详解
- 针对安卓java入门:数据类型
- Spring环境下实现定时执行任务
- Java日期格式化及其使用例子收集