插入排序算法
随机产生80000个数进行排序,进行时间测试
package com.wmq.demo01.sort;
import java.util.Arrays;
/**
* 插入排序
*/
public class InsertSort {
public static void main(String[] args) {
//int[] arr = {1,-7,39,4,5};
int arr[] = new int[80000];
for (int i = 0; i < 80000; i++) {
arr[i] = (int)(Math.random()*800000);
}
long start = System.currentTimeMillis();
insertSort(arr);
long end = System.currentTimeMillis();
System.out.println("一共消耗了"+(end-start)+"毫秒");
}
public static void insertSort(int arr[]){
for (int i = 1; i < arr.length; i++) {
int insertVal = arr[i];
int insertIndex = i - 1;
//insertIndex>=0防止数组下标越界
//insertVal<arr[insertIndex]说明待插入的数还没找到位置
while (insertIndex >= 0 && insertVal < arr[insertIndex]) {
arr[insertIndex + 1] = arr[insertIndex];
insertIndex--;
}
//判断是否需要赋值
if (insertIndex+1 != i) {
arr[insertIndex + 1] = insertVal;
}
}
}
}