並べ替えアルゴリズムの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;
}
}
}
}