欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java順序查找和折半查找

劉艷霞1年前6瀏覽0評論

Java作為一種高級編程語言,擁有許多求解問題的算法和數據結構。在算法課程中,我們學習到了兩種比較常見的查找算法:順序查找和折半查找。

順序查找,也叫線性查找,是一種簡單直接的查找算法。它是從數組的第一個元素開始,逐個遍歷數組的所有元素,直到找到目標值為止。如果遍歷完整個數組還沒找到目標值,就說明目標值在數組中不存在。

public static int sequentialSearch(int[] array, int target) {
for (int i = 0; i < array.length; i++) {
if (array[i] == target) {
return i;
}
}
return -1;
}

折半查找,也叫二分查找,是一種高效的查找算法。它利用了目標數組有序這一特點,每次查找都可以將待查找的區間縮小一半,直到找到目標值為止。值得注意的是,折半查找只適用于已經排序好的數組。

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

在實際應用中,順序查找和折半查找有著不同的應用場景。如果數據量不是很大,順序查找可以起到比較良好的查找效果;如果數據量較大,或者對查找效率有較高的要求時,折半查找則是更好的選擇。