¿El 90% de los programadores no pueden implementar correctamente el algoritmo de búsqueda binaria? ? ?

     Prefacio

           Jon Bentley, autor de ProgrammingPearls ("Programming Pearls"), dijo una vez algo similar: "El 90% de los programadores no pueden implementar correctamente los algoritmos de búsqueda binaria ..."

     La implicación es que solo 1/10 de los programadores pueden escribir un "algoritmo de búsqueda binaria". Volví a ver esta oración ayer, así que abrí eclipse en cualquier momento y la anoté, y todo salió bien.


Acerca del "Algoritmo de búsqueda binaria"

El "algoritmo de búsqueda binaria" también se denomina "media búsqueda" o "media búsqueda" en muchos lugares. Es un algoritmo de "búsqueda / búsqueda" más comúnmente utilizado. La idea básica es encontrar los valores mínimo, máximo e intermedio y luego compararlos. La velocidad de búsqueda es rápida y el rendimiento es bueno. Pero la tabla que se busca debe estar en orden (el punto popular es que debe ordenarse).


No hay mucha tontería, solo ve al código.


package com.dylan.algorithm;

import javax.sound.sampled.Mixer;

public class BinarySearch {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
      
		 int arr[] ={10,24,36,47,68,89,130};
		 int index = Search(arr, 89);
		 System.out.println(index);
	}
	/*实现二分查找算法(折半算法)
	 *要确定数组是排序好的
	 *最好是里面一定包含该元素
	 */
	public static int  Search(int[] arr,int key ) {
		 
		  int min =0;
		  int max=arr.length-1;
		  int mid = (min+max)/2;
		  while(arr[mid]!=key){		  
			  if (arr[mid]<key) {
				 min=mid+1;
		    	}else if (arr[mid]>key) {			
		    	 max=mid-1;
			   }
			 if(max<min){			 
				 return -1;//里面不存在值为key的元素
			 }
			 //继续折半
			 mid=(min+max)/2;
		  }
		  
		return mid;
	}

}

      Estudiantes interesados, pueden intentar ejecutarlo de acuerdo con el código para ver si se puede encontrar correctamente, si habrá problemas como bucles sin fin. Para ser honesto, rara vez utilizo esta cosa en mi trabajo. Hace unos años me "cerré de golpe" para una entrevista. No esperaba que pudiera escribir algo de mi impresión. Si tengo tiempo en el futuro cercano, es hora de revisar los conceptos básicos.

Quizás la mayoría de los programadores ahora tienen cierto "miedo" o incluso "disgusto" hacia la "estructura de datos y el algoritmo". Cuando tenga tiempo al día siguiente, usaré la forma de dibujo para describir en detalle la idea básica del "algoritmo de búsqueda binaria" y los pasos detallados de derivación.

Supongo que te gusta

Origin blog.csdn.net/dinglang_2009/article/details/20404323
Recomendado
Clasificación