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ù)具體情況選擇合適的算法來解決問題。