public class Main
{
public static void BinarySort(int[]a)
{
int i,j;
int low,high,mid;
int data;
int n=a.length;
for(i=1;i<n;i++)
{
data=a[i];
low=0;
high=i-1;
while(low<=high)
{
mid=(low+high)/2;
if(data<a[mid])
high=mid-1;
else
low=mid+1;
}
//low...i-1
for(j=i-1;j>=low;j--)
a[j+1]=a[j];
a[low]=data;
}
}
public static void main(String[] args) {
int []a=new int[10];
int i;
for(i=0;i<a.length;i++)
a[i]=(int)(Math.random()*100)+1;
System.out.println("排序之前");
for( int data:a)
System.out.print(data+" ");
System.out.println();
Main.BinarySort(a);
System.out.println("排序之后");
for( int data:a)
System.out.print(data+" ");
System.out.println();
}
}