level 6
mx675641819
楼主
package sorted; public class HalfSorted {
//{20,12,36,48,25}
public void half(int a[]){
int left,right,mid;
int number,j;
for(int i=1;i<a.length;i++){
left=0;
right=i-1;
number=a[i];
//通过二分法定位数据number的位置
while(left<=right){
mid=(left+right)/2;
if(number<a[mid]){
right=mid-1;
}else{
left=mid+1;
}
//System.out.println(i+" "+left+" "+right+" "+mid+" "+number+" "+a[mid]);
}
for(j=i-1;j>=left;j--){
a[j+1]=a[j];
}
a[left]=number;
//System.out.println(a[left]);
}
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
public static void main(String...args){
int arr[]={20,12,36,48,25};
HalfSorted hs=new HalfSorted();
hs.half(arr);
} }
关于这个怎么解释啊,昨天老师讲的没有听懂
2012年09月12日 01点09分
1
//{20,12,36,48,25}
public void half(int a[]){
int left,right,mid;
int number,j;
for(int i=1;i<a.length;i++){
left=0;
right=i-1;
number=a[i];
//通过二分法定位数据number的位置
while(left<=right){
mid=(left+right)/2;
if(number<a[mid]){
right=mid-1;
}else{
left=mid+1;
}
//System.out.println(i+" "+left+" "+right+" "+mid+" "+number+" "+a[mid]);
}
for(j=i-1;j>=left;j--){
a[j+1]=a[j];
}
a[left]=number;
//System.out.println(a[left]);
}
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
public static void main(String...args){
int arr[]={20,12,36,48,25};
HalfSorted hs=new HalfSorted();
hs.half(arr);
} }
关于这个怎么解释啊,昨天老师讲的没有听懂