public class Binary_insertion_sort {
public static void print(int a[]){
for(int i
=0;i<a.length;i
+
+){
System.out.print(a[i]
+
"
");
}
System.out.println();
}
public static void binary_insertion_sort(int[] a){
for(int j
=1;j<a.length;j
+
+){
int key
=a[j];
int high
=j-1;
int low
=0;
while(low<
=high){
int mid
=(low
+high)/2;
if(a[mid]<key){
low
=mid
+1;
}else{
high
=mid-1;
}
}
for(int i
=j-1;i>
=low;i--){
a[i
+1]
=a[i];
}
a[low]
=key;
}
}
public static void main(String[] args){
int[] a
=new int[]{1,5,7,3,2};
print(a);
binary_insertion_sort(a);
print(a);
}