Análisis de algoritmos y estructura de datos Java-búsqueda binaria


Aviso de copyright

  • Autor original de este artículo: hermano menor de Columbia Valley
  • Dirección del blog del autor: http://blog.csdn.net/lfdfhl

Análisis de principios

Hay una matriz ordenada {2, 5, 8, 12, 16, 23, 38, 56, 72, 91}, utilice la dicotomía para encontrar el índice correspondiente al elemento 23.

Condición previa

La premisa de la búsqueda binaria es que los elementos de la matriz están ordenados; de lo contrario, no se puede buscar.

Principio de búsqueda

primer paso:

Determine los subíndices máximo, mínimo y medio de toda la matriz.

El segundo paso:

Compare el valor objetivo con el valor correspondiente al subíndice máximo, el valor correspondiente al subíndice mínimo y el valor correspondiente al subíndice del medio

tercer paso:

Ajustar subíndice máximo, subíndice mínimo y subíndice medio

Encontrar proceso

Inserte la descripción de la imagen aquí

Código

La implementación del código de la búsqueda binaria es la siguiente:

package com.algorithm;

/**
 * 本文作者:谷哥的小弟 
 * 博客地址:http://blog.csdn.net/lfdfhl
 *
 */
public class BinarySearch {
    
    
	public static void main(String[] args) {
    
    
		int[] intArray = {
    
     2, 5, 8, 12, 16, 23, 38, 56, 72, 91 };
		int index = binarySearch(intArray, 23);
		System.out.println(index);
	}

	public static int binarySearch(int[] intArray, int value) {
    
    
		int max = intArray.length - 1;
		int min = 0;
		int mid = (max + min) / 2;
		while (intArray[mid] != value) {
    
    
			if (min <= max) {
    
    
				if (intArray[mid] > value) {
    
    
					max = mid - 1;
				} else if (intArray[mid] < value) {
    
    
					min = mid + 1;
				}
				mid = (max + min) / 2;
			} else {
    
    
				System.out.println("未查询到相应数据");
				mid = -1;
				break;
			}
		}
		return mid;
	}

}

resultado de la operación

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/lfdfhl/article/details/109322224
Recomendado
Clasificación