插入排序
package aStudy.day6;
import org.junit.Test;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class data03 {
public static void main(String[] args) {
int[] arr = {101,34,119,1,-1,89};
test01(arr);
test02(arr);
}
public static void insert(int [] arr){
int temp = arr[1];
int insertIndex = 1-1;
while (insertIndex >= 0 && temp < arr[insertIndex]){
arr[insertIndex + 1] = arr[insertIndex];
insertIndex--;
}
arr[insertIndex+1] = temp;
System.out.println("第一轮:");
System.out.println(Arrays.toString(arr));
temp = arr[2];
insertIndex = 2-1;
while (insertIndex >= 0 && temp < arr[insertIndex]){
arr[insertIndex + 1] = arr[insertIndex];
insertIndex--;
}
arr[insertIndex+1] = temp;
System.out.println("第2轮:");
System.out.println(Arrays.toString(arr));
temp = arr[3];
insertIndex = 3-1;
while (insertIndex >= 0 && temp < arr[insertIndex]){
arr[insertIndex + 1] = arr[insertIndex];
insertIndex--;
}
arr[insertIndex+1] = temp;
System.out.println("第3轮:");
System.out.println(Arrays.toString(arr));
}
public static void test01(int[] arr){
int temp = 0;
int index = 0;
for (int i = 1; i < arr.length; i++) {
temp = arr[i];
index = i-1;
while (index >= 0 && temp < arr[index]){
arr[index + 1] = arr[index];
index--;
}
if (index +1 != i)
arr[index+1] = temp;
System.out.println("\nthe "+i+" th: ");
System.out.println(Arrays.toString(arr));
}
}
public static void test02(int[] arr){
int temp = 0;
for (int i = 1; i < arr.length; i++) {
temp = arr[i];
int j = i;
for (; j > 0 && temp < arr[j-1]; j--){
arr[j] = arr[j-1];
}
arr[j] = temp;
}
}
@Test
public void test1(){
int[] arr = new int[80000];
for (int i = 0; i < 80000; i++) {
arr[i] = (int) (Math.random()*80000);
}
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = new Date();
String date1Str = format.format(date1);
System.out.println("the first time = "+date1Str);
test02(arr);
Date date2 = new Date();
String date2Str = format.format(date2);
System.out.println("the first time = "+date2Str);
}
}