package com
.qin
.sort
;
import java
.text
.SimpleDateFormat
;
import java
.util
.Arrays
;
import java
.util
.Date
;
public class InsertSort {
public static void main(String
[] args
) {
int [] arr
= {101,34,119,1};
int [] arr2
= {101,34,119,1};
insertSort(arr
);
insertSort2(arr2
);
System
.out
.println("=====================");
int [] arr4
= new int [80000];
for (int i
= 0 ; i
< 80000 ; i
++){
arr4
[i
] = (int)(Math
.random() * 80000000);
}
Date date1
= new Date();
SimpleDateFormat simpleDateFormat
= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date1Str
= simpleDateFormat
.format(date1
);
System
.out
.println("排序前的时间是:"+date1Str
);
insertSort2(arr4
);
Date date2
= new Date();
String date2Str
= simpleDateFormat
.format(date2
);
System
.out
.println("排序后的时间是:"+date2Str
);
}
public static void insertSort(int[] arr
){
int insertVal
= arr
[1];
int insertIndex
= 1-1;
while (insertIndex
>=0 && insertVal
< arr
[insertIndex
]){
arr
[insertIndex
+1] = arr
[insertIndex
];
insertIndex
--;
}
arr
[insertIndex
+1] = insertVal
;
System
.out
.println("第一轮插入");
System
.out
.println(Arrays
.toString(arr
));
insertVal
= arr
[2];
insertIndex
= 2-1;
while (insertIndex
>=0 && insertVal
< arr
[insertIndex
]){
arr
[insertIndex
+1] = arr
[insertIndex
];
insertIndex
--;
}
arr
[insertIndex
+1] = insertVal
;
System
.out
.println("第二轮插入");
System
.out
.println(Arrays
.toString(arr
));
insertVal
= arr
[3];
insertIndex
= 3-1;
while (insertIndex
>=0 && insertVal
< arr
[insertIndex
]){
arr
[insertIndex
+1] = arr
[insertIndex
];
insertIndex
--;
}
arr
[insertIndex
+1] = insertVal
;
System
.out
.println("第三轮插入");
System
.out
.println(Arrays
.toString(arr
));
System
.out
.println("=======================");
}
public static void insertSort2(int[] arr
){
for (int i
= 1; i
< arr
.length
; i
++) {
int insertVal
= arr
[i
];
int insertIndex
= i
-1;
while (insertIndex
>=0 && insertVal
< arr
[insertIndex
]){
arr
[insertIndex
+1] = arr
[insertIndex
];
insertIndex
--;
}
if (insertIndex
+1!=i
){
arr
[insertIndex
+1] = insertVal
;
}
}
}
}
结论:这里我们可以看出,插入排序是优于选择排序的,选择排序是优于冒泡排序的,所以插入排序是优于冒泡排序的
转载请注明原文地址:https://blackberry.8miu.com/read-40887.html