色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java快速排序和二分查找

李昊宇1年前7瀏覽0評論

java快速排序和二分查找是算法中常用的兩種方法。

快速排序是一種分治的排序算法,通過遞歸地將數(shù)據(jù)分解成小于和大于基準(zhǔn)值的兩個子序列來實(shí)現(xiàn)排序。具體實(shí)現(xiàn)方式如下:

public static void quickSort(int[] arr, int left, int right) {
if (left< right) {
int pivotIndex = partition(arr, left, right);
quickSort(arr, left, pivotIndex - 1);
quickSort(arr, pivotIndex + 1, right);
}
}
public static int partition(int[] arr, int left, int right) {
int pivot = arr[left];
int i = left + 1;
int j = right;
while (true) {
while (i<= j && arr[i]< pivot) i++;
while (i<= j && arr[j] >pivot) j--;
if (i >= j) break;
swap(arr, i, j);
i++;
j--;
}
swap(arr, left, j);
return j;
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}

二分查找是一種在有序數(shù)組中查找給定元素的搜索算法。具體實(shí)現(xiàn)方式如下:

public static int binarySearch(int[] arr, int target) {
int left = 0;
int right = arr.length - 1;
while (left<= right) {
int mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid]< target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}

快速排序和二分查找都是常用的算法,能夠提高程序的執(zhí)行效率。在實(shí)際應(yīng)用中,我們要根據(jù)具體情況選擇合適的算法來解決問題。