插入排序法:这里采用随机生成10个数,可通过直接修改length的值修改个数。
这里给出测量此方法的效率(大概),通过输出两次系统时间来对比。如果随机产生的数比较大时,有明显差别。(数比较大时,请注释掉打印,即代码中 “//依次打印排序后数组的每个元素” 下的循环)
/**
* 插入排序法
*/
import java.util.Calendar;
public class InsertSortWay {
public static void main(String[] args) {
//定义数组长度
int length = 10;
//实例化对象
InsertSort is = new InsertSort();
int array[] = new int[length];
//给数组赋随机值
for(int i=0;i<array.length;i++){
int t = (int) (Math.random()*1000);
array[i] = t;
}
//输出此刻的系统时间
Calendar ca = Calendar.getInstance();
System.out.println(ca.getTime());
is.sort(array);
//输出此刻的系统时间
ca = Calendar.getInstance();
System.out.println(ca.getTime());
//依次打印排序后数组的每个元素
for(int i=0;i<array.length;i++){
System.out.println(array[i] + " ");
}
}
}
//插入排序法
class InsertSort{
public void sort(int arr[]){
for(int i=1;i<arr.length;i++){
int InsertVal = arr[i];
int index = i-1;
while(index >= 0 && InsertVal < arr[index]){
arr[index+1] = arr[index];
index--;
}
arr[index+1] = InsertVal;
}
}
}