排序 - 2路插入排序
public class twoWayInsertSort {
public static void main(String[] args) {
int[] ints = new int[20];
int[] fg = {0,49,38,65,97,76,13,27,49,55,4};
int first = 1;
int end = 1;
int xx = 2;
ints[1] = fg[1];
while(xx < fg.length){
if(fg[xx] <= ints[first]){
first = (first - 1 + ints.length) % ints.length;
ints[first] = fg[xx];
}else if(fg[xx] >= ints[end]) {
end = (end + 1 + ints.length) % ints.length;
ints[end] = fg[xx];
}else if(fg[xx] < ints[end]){
int n = end;
while(ints[n] > fg[xx]){
ints[(n + 1 + ints.length) % ints.length] = ints[n];
n = (n - 1 + ints.length) % ints.length;
}
ints[(n + 1 + ints.length) % ints.length] = fg[xx];
end = (end + 1 + ints.length) % ints.length;
}else if(fg[xx] > ints[first]){
int m = first;
while(ints[m] < fg[xx]){
ints[(m - 1 + ints.length) % ints.length] = ints[m];
m = (m + 1 + ints.length) % ints.length;
}
ints[(m - 1 + ints.length) % ints.length] = fg[xx];
first = (first - 1 + ints.length) % ints.length;
}
xx++;
}
while(first != end + 1){
System.out.print(ints[first] + " ");
first = (first + 1 + ints.length) % ints.length;
}
}
}