排序80000时间约为2秒
时间复杂度n^2
package com.atguigu.Sort;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
/**
*
* 插入排序
*
* 排序80000个数据的时间为2秒
*/
public class InsertSort {
public static void main(String[] args) {
int[] arr = {8,4,7,9,2,5};
System.out.println("原始数据为" + Arrays.toString(arr));
intsertSort(arr);
System.out.println("排序后的数据为" + Arrays.toString(arr));
//测试代码的运行速度
int nums = 80000 ;
int[] arrs = new int[nums];
for (int i = 0; i < nums; i++) {
arrs[i] = (int)(Math.random()*8000000);
}
Date startTime = new Date();
intsertSort(arrs);
Date overTime = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("排序" + nums + "个数据开始的时间为" + sdf.format(startTime));
System.out.println("排序" + nums + "个数据结束的时间为" + sdf.format(overTime));
/* System.out.println("排序后的数据为" );
for (int i = 0; i < arrs.length; i++) {
if (i % 10 == 0){
System.out.println(" ");
}
System.out.print(" " + arrs[i]);
}*/
}
//插入排序
private static int[] intsertSort(int[] arr) {
int insert = 0;
int insertIndex = 0;
for (int i = 1; i < arr.length; i++) {
insert = arr[i];
insertIndex = i - 1;
while(insertIndex >= 0 && arr[insertIndex] > insert){
arr[insertIndex + 1] = arr[insertIndex];
insertIndex--;
}
arr[insertIndex + 1] = insert;
}
return arr;
}
}