1. 程式人生 > >java排序中的插入排序的優化-----二分排序

java排序中的插入排序的優化-----二分排序

二分排序的思想:

1)、給定下界:low,給定上界:high,中:mid

2)、將插入的數和mid位置的陣列元素進行比較,如果比mid位置的大則low=mid+1,否則high=mid-1

3)、之後需要從插入數插入位置開始的陣列元素全部往後摞一位。騰出hight+1存放插入數。


public void insertSort2(int a[]){
		for(int i=0;i<a.length-1;i++){
			int temp=a[i+1];
			int low=0;
			int high=i;
			int mid;
			while(low<=high){
				mid=(low+high)/2;
				if(a[mid]<temp){
					low=mid+1;
				}else{
					high=mid-1;
				}
			}
			for(int j=i;j>high;j--){
				a[j+1]=a[j];//j+1等價於給定範圍j=i+1;
			}
			a[high+1]=temp;
		}
		print(a);
	}