万网的网站代码怎么看,大连网络公司哪家好,wordpress后台登录慢,做网站的公司成本本周的任务是用Java实现二进制搜索 #xff0c;您需要编写迭代和递归二进制搜索算法 。 在计算机科学中#xff0c;二进制搜索或半间隔搜索是一种分而治之的算法#xff0c;用于定位项目在排序数组中的位置。 二进制搜索通过将输入值与数组的中间元素进行比较来工作。 比较确… 本周的任务是用Java实现二进制搜索 您需要编写迭代和递归二进制搜索算法 。 在计算机科学中二进制搜索或半间隔搜索是一种分而治之的算法用于定位项目在排序数组中的位置。 二进制搜索通过将输入值与数组的中间元素进行比较来工作。 比较确定元素是否等于输入小于输入或大于输入。 当要比较的元素等于输入时搜索将停止并通常返回该元素的位置。 如果元素不等于输入则进行比较以确定输入是否小于或大于元素。 然后根据算法的不同算法重新开始但仅搜索数组元素的顶部或底部子集。 如果输入不在数组内则算法通常会输出一个唯一的值来表明这一点。 二进制搜索算法通常将每次连续迭代要检查的项目数量减半从而在对数时间内定位给定的项目或确定其不存在。 二进制搜索是一种分而治之的搜索算法。 它通过将输入集分成两半然后应用算法并重复相同的步骤直到完成工作来工作。 Java中的二进制搜索实现 该算法是递归实现的。 另外有关Java中的二进制搜索实现的一个有趣的事实是著名的作者Joshua Bloch 有效的Java书籍在“ java.util.Arrays”中编写了二进制搜索。 import java.util.Arrays;
import java.util.Scanner;/**
* Java program to implement Binary Search. We have implemented Iterative
* version of Binary Search Algorithm in Java
*
* author Javin Paul
*/
public class IterativeBinarySearch {public static void main(String args[]) {int[] list new int[]{23, 43, 31, 12};int number 12;Arrays.sort(list);System.out.printf(Binary Search %d in integer array %s %n, number,Arrays.toString(list));binarySearch(list, 12);System.out.printf(Binary Search %d in integer array %s %n, 43, Arrays.toString(list));binarySearch(list, 43);list new int[]{123, 243, 331, 1298};number 331;Arrays.sort(list);System.out.printf(Binary Search %d in integer array %s %n, number, Arrays.toString(list));binarySearch(list, 331);System.out.printf(Binary Search %d in integer array %s %n, 331, Arrays.toString(list));binarySearch(list, 1333);// Using Core Java API and Collection framework// Precondition to the Arrays.binarySearchArrays.sort(list);// Search an elementint index Arrays.binarySearch(list, 3);}/*** Perform a binary Search in Sorted Array in Java** param input* param number* return location of element in array*/public static void binarySearch(int[] input, int number) {int first 0;int last input.length - 1;int middle (first last) / 2;while (first last) {if (input[middle] number) {first middle 1;} else if (input[middle] number) {System.out.printf(number found at location %d %n, middle);break;} else {last middle - 1;}middle (first last) / 2;}if (first last) {System.out.println(number is not present in the list.\n);}}
}Output
Binary Search 12 in integer array [12, 23, 31, 43]
12 found at location 0
Binary Search 43 in integer array [12, 23, 31, 43]
43 found at location 3
Binary Search 331 in integer array [123, 243, 331, 1298]
331 found at location 2
Binary Search 331 in integer array [123, 243, 331, 1298]
1333 is not present in the list. 这就是如何在Java中实现迭代二进制搜索的全部内容。 感谢您到目前为止阅读本文。 如果您喜欢这篇文章请与您的朋友和同事分享。 如果您有任何疑问或反馈请留言。 翻译自: https://www.javacodegeeks.com/2018/06/binary-search-java-without-recursion.html