这是一个使用 Java 语言实现二分法排序的示例代码:
import java.util.Arrays;
public class BinarySort {
public static void main(String[] args) {
// 排序前数组
int[] array = {3, 7, 1, 2, 9, 4, 5};
// 排序
sort(array);
// 打印排序后的数组
System.out.println(Arrays.toString(array));
}
public static void sort(int[] array) {
for (int i = 1; i < array.length; i++) {
int value = array[i];
int j = i - 1;
// 二分法查找插入位置
int left = 0;
int right = i - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (array[mid] > value) {
right = mid - 1;
} else {
left = mid + 1;
}
}
// 将大于 value 的元素向后移动一位
while (j >= left) {
array[j + 1] = array[j];
j--;
}
// 将 value 插入到正确的位置
array[left] = value;
}
}
}
上面的代码实现了一种插入排序的算法,其中使用了二分法来查找每个元素应该插入的位置。这个算法的时间复杂度为 O(n log n),相对于普通的插入排序(时间复杂度为 O(n^2))而言,运行速度要快得多。