並べ替えアルゴリズムの2点を並べ替えJava版に挿入します。


/**
 *                   
 *             
 * 
 *   :
 *                   ,       ,    1     。
 *                         。
 */
public class BinaryInsertionSort {
	public void sort(int[] arr) {
		int i, j, left, right, center, tmp, len = arr.length;
		
		for (i = 1; i < len; i++) {
			
			//                ,                   
			if (arr[i] < arr[i - 1]) {				
				left = 0;
				right = i - 1;				
				while (left < right) {
					//        ,            
					center = (right + left) / 2;

					if (arr[center] < arr[i]) {
						//             ,            
						left = center + 1;
					} else {
						//             ,            
						right = center - 1;
					}
				}
				
				tmp = arr[i];
				
				//  arr[i]       
				for (j = i; j > left; j--) {
					arr[j] = arr[j - 1];
				}

				arr[left] = tmp;
			}
		}
	}
}