Home > Java > Javagetting Started > body text

Java implements binary search

王林
Release: 2019-12-30 11:50:39
forward
2367 people have browsed it

Java implements binary search

What is binary search:

Biometric search is also a binary search. It searches for the specified element in an ordered sequence and sets the minimum index (low) and The maximum index (height-1) and the middle value mid ((low height-1)/2). For this search, if the middle value is smaller than the specified element, let low=mid 1. If the middle value is larger than the specified element, let height =mid-1;

Code implementation: (Free video tutorial sharing: java video tutorial)

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
 
public class Main2 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
				int arr[] = { 2, 5, 6, 8, 9, 4, 7 };
				Arrays.sort(arr);
				int deix(索引) = getxiabiao(arr, 7);
				
			}
			public static int getxiabiao(int[] arr, int key) {
				int heigh = arr.length-1;
				int low = 0;
				int mid = 0;
				while (low <= heigh) {
					mid = low + (heigh - low)/2;
					if (arr[mid] == key) {
						return mid;
					} else if (arr[mid] < key) {
						low = mid + 1;
					} else if (arr[mid] > key) {
						heigh = mid - 1;
					}
				}
				return -1;
			}
		}
Copy after login

There are two ways to set the intermediate value;

Algorithm one: mid = (low high) / 2

Algorithm two: mid = low (high – low)/2

At first glance, algorithm one is simple, and algorithm two extracts After that, there is no difference from Algorithm 1. But in fact, the difference exists.

The approach of Algorithm 1, in extreme cases, there is a risk of overflow (low high), which will lead to wrong mid results, leading to program errors, while Algorithm 2 can ensure that the calculated mid must be greater than low , less than high, there is no overflow problem.

Recommended related articles and tutorials: java introductory tutorial

The above is the detailed content of Java implements binary search. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template