public class InsertSort {
public static void main(String[] args) {
// int[] arr = {1, 6, 4, 2, 3};
// 测试时间复杂度
int [] arr = new int[80000];
for (int i = 0; i < arr.length; i++) {
// 生成 [0,8000000)的随机数
arr[i] = (int) (Math.random()*8000000);
}
long start_Time = System.currentTimeMillis();
insertSort(arr);
long stop_Time = System.currentTimeMillis();
// 毫秒之间
System.out.printf("耗费 %d ms",stop_Time - start_Time);
}
// 插入排序
public static void insertSort(int[] arr) {
int insertVal=0;
int index= 0;
for (int i = 1; i < arr.length; i++) {
insertVal = arr[i];
// 前一个值的索引
index = i - 1;
while (index >= 0 && insertVal < arr[index]) {
arr[index+1] = arr[index];
index --;
}
if(index +1 != i){
arr[index+1] = insertVal;
}
/* System.out.printf("=========第%d轮排序===========\n",i);
System.out.println(Arrays.toString(arr));
*/ }
}
}
八大排序之插入排序
最新推荐文章于 2024-06-15 11:44:36 发布