Advertisement
urksiful

BInary Search

Nov 22nd, 2015
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.41 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3.  
  4.  
  5. public class BinSearchNew {
  6.    
  7.    
  8.     public static void main(String[] args){
  9.        
  10.         ArrayList<Integer> lista = new ArrayList<Integer>();
  11.         Scanner x = new Scanner(System.in);
  12.         BinSearchNew sr = new BinSearchNew();
  13.         int mov=0;
  14.        
  15.         for(int m=0; m<100; m++){
  16.             lista.add((int)(Math.random()*200)+1);
  17.         }
  18.        
  19.         sr.Ordena(lista);
  20.         for(int m=0; m<100; m++){
  21.             System.out.print(lista.get(m)+" ");
  22.         }
  23.        
  24.         sr.Bin(lista, mov, x.nextInt());
  25.        
  26.        
  27.        
  28.     }
  29.    
  30.     public void Bin(ArrayList<Integer> lista, int mov, int id) {
  31.        
  32.         if(lista.size()>0){
  33.            
  34.             int piv = (lista.size()%2 == 0) ? (lista.size()/2)-1 : lista.size()/2;
  35.            
  36.             if(id == lista.get(piv)){
  37.                 System.out.println("Econtrado en "+mov);
  38.             }else if(id < lista.get(piv)){
  39.                 int dif = (lista.size())-piv;
  40.                 for(int i=0; i<dif; i++){
  41.                     lista.remove(lista.size()-1);
  42.                 }
  43.  
  44.                 mov++;
  45.                 Bin(lista, mov, id);
  46.             }else if(id > lista.get(piv)){
  47.                 for(int y=0; y<= piv; y++){
  48.                     lista.remove(0);
  49.                 }
  50.                 mov++;
  51.                 Bin(lista, mov, id);
  52.             }
  53.            
  54.         }else{
  55.             System.out.println("No encontrado");
  56.         }
  57.     }
  58.    
  59.     public void Ordena(ArrayList<Integer> f){
  60.         int tmp;
  61.        
  62.         for(int i=0; i<f.size()-1; i++){
  63.             for(int j=i; j<f.size(); j++){
  64.                
  65.                 if(f.get(j)<f.get(i)){
  66.                     tmp = f.get(i);
  67.                     f.set(i, f.get(j));
  68.                     f.set(j, tmp);
  69.                 }
  70.             }
  71.         }
  72.        
  73.     }
  74.    
  75.  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement