插入排序InsertionSort
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序InsertionSort相关的知识,希望对你有一定的参考价值。
/** * * @author Administrator * 功能:插入排序法 */ package com.test1; import java.util.Calendar; public class InsertionSort { public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = new int[50000]; for (int i = 0; i < arr.length; i++) { //让程序随机产生一个1 - 10000个数 //Math.random会产生一个0到1的数 arr[i] = (int)(Math.random()*50000); } //int[] arr = { 1, 6, 0, -1, 9, -100, -90 }; Insert insert = new Insert(); //在排序前打印系统时间 //Calendar是单开模式,在系统里面只有一个,且只需要一个实例,不是new 出来的 //Java共有23中模式 Calendar cal = Calendar.getInstance(); System.out.println("排序前:"+cal.getTime()); insert.sort(arr); //在排序后打印系统时间 //因为是单开的,所有首先重新得到实例 cal = Calendar.getInstance(); System.out.println("排序后:"+cal.getTime()); // System.out.println("插入排序的结果是:"); // for (int i = 0; i < arr.length; i++) { // System.out.print(arr[i]+" "); // } } } //插入排序 class Insert { //插入排序方法 public void sort(int[] arr) { for (int i = 1; i < arr.length; i++) { int insertVal = arr[i]; //insertVal准备和前一个数比较 int index = i - 1; while(index >= 0 && insertVal < arr[index]) { //将arr[index]向后移动一位 arr[index+1] = arr[index]; //让index向前移动一位,-1结束while循环继续往下执行 index--; } //将insertVal插入到适当位置 arr[index+1] = insertVal; } } }
以上是关于插入排序InsertionSort的主要内容,如果未能解决你的问题,请参考以下文章