Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    problema con ordinamento e ricerca

    il prof ha dato da fare un esercizio:costruisca in java un array di 5 interi nn ordinato e si applici la ricerca binaria!quindi prima si deve applicare un algoritmo di ordinamento e poi la ricerca binaria!quindi ho fatto il seguente programma:

    import java.util.Scanner;
    public class BinarySearch
    {
    private int[] a;
    public BinarySearch(int[] an)
    {
    a=an;
    }
    public void sort()
    {
    for(int i=0;i<a.length;i++)
    {
    int next=a[i];
    int j=i;
    while(j>0 && a[j-1]>next)
    {
    a[j]=a[j-1];
    j--;
    }
    a[j]=next;
    }
    }
    public int search(int v)
    {
    int low=0;
    int high=a.length-1;
    while (low<=high)
    {
    int mid=(high+low)/2;
    int diff=a[mid]-v;
    if(diff==0) return mid;
    else if(diff<0) low=mid+1;
    else high=mid-1;
    }
    return -1;
    }
    public static void main(String[] args)
    {
    int[] b=new int[5];
    BinarySearch t=new BinarySearch(b);
    Scanner in=new Scanner(System.in);
    for(int i=0;i<5;i++)
    {
    System.out.println("Inserisci un intero:");
    int e=in.nextInt();
    t[i]=e;
    }
    t.sort();
    System.out.println("Cerca l'intero:");
    int y=in.nextInt();
    System.out.println("Il risultato della ricerca e':"+t.search(y));
    }
    }

    ma mi da un errore del tipo"array required,but BinarySearch found"!!!!!!!
    aiutatemi!!!!vi prego!
    vi ringrazio anticipatamente

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013

    Re: problema con ordinamento e ricerca

    Migliora così?
    codice:
    import java.util.Scanner;
    public class BinarySearch
    {
    	private int[] a;
    	public BinarySearch(int[] an)
    	{
    		a=an;
    	}
    	public void sort()
    	{
    		for(int i=0;i<a.length;i++)
    		{
    			int next=a[i];
    			int j=i;
    			while(j>0 && a[j-1]>next)
    			{
    				a[j]=a[j-1];
    				j--;
    			}
    			a[j]=next;
    		}
    	}
    	public int search(int v)
    	{
    		int low=0;
    		int high=a.length-1;
    		while (low<=high)
    		{
    			int mid=(high+low)/2;
    			int diff=a[mid]-v;
    			if(diff==0) return mid;
    			else if(diff<0) low=mid+1;
    			else high=mid-1;
    		}
    		return -1;
    	}
    	public static void main(String[] args)
    	{
    		int[] b=new int[5];
    		Scanner in=new Scanner(System.in);
    		for(int i=0;i<5;i++)
    		{
    			System.out.println("Inserisci un intero:");
    			int e=in.nextInt();
    			b[i]=e;
    		}
                    BinarySearch t=new BinarySearch(b);
    		t.sort();
    		System.out.println("Cerca l'intero:");
    		int y=in.nextInt();
    		System.out.println("Il risultato della ricerca e':"+t.search(y));
    	}
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    grazie!era veramente una cavolata!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.