直接插入排序
import java.util.*;
public class InsertSort{
private static void sort(int[] dataArr){
for(int i = 1; i < dataArr.length; i++){
if(dataArr[i] < dataArr[i - 1]){
int temp = dataArr[i];
dataArr[i] = dataArr[i - 1];
int j = i - 2;
for(; j >= 0 && dataArr[j] > temp; j--){
dataArr[j + 1] = dataArr[j];
}
dataArr[j + 1] = temp;
}
}
}
public static void main(String[] args){
int[] dataArr = new int[args.length];
for(int i = 0; i < args.length; i++){
try{
dataArr[i] = Integer.valueOf(args[i]);
}catch(NumberFormatException e){
System.out.println("input invalid decimal integer:" + e.getMessage());
return;
}
}
System.out.println("befort sort:" + Arrays.toString(dataArr));
sort(dataArr);
System.out.println("after sort:" + Arrays.toString(dataArr));
}
}
运行:
javac InsertSort.java
java InsertSort 49 38 65 97 76 13 27
输出:
befort sort:[49, 38, 65, 97, 76, 13, 27]
after sort:[13, 27, 38, 49, 65, 76, 97]