java写一个程序 二分法排序
时间: 2024-04-29 22:23:38 浏览: 90
java编写三种排序方法小程序
以下是二分法排序的Java程序:
```java
import java.util.Arrays;
public class BinarySearchSort {
public static void main(String[] args) {
int[] arr = {3, 2, 1, 5, 4};
binarySearchSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void binarySearchSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int temp = arr[i];
int left = 0;
int right = i - 1;
int mid = 0;
while (left <= right) {
mid = (left + right) / 2;
if (temp < arr[mid]) {
right = mid - 1;
} else {
left = mid + 1;
}
}
for (int j = i - 1; j >= left; j--) {
arr[j + 1] = arr[j];
}
arr[left] = temp;
}
}
}
```
这个程序使用了二分法的思想,对于每一个要插入的数,先在已经排好序的数组中找到它的位置,然后将其插入到该位置。在找位置的过程中,使用了二分法的思想,即每次将要查找的范围缩小一半,直到找到插入位置。最后,使用插入排序的思想,将该数插入到数组中的正确位置。
阅读全文