Announcement

Collapse
No announcement yet.

Problem bei Übungsaufgabe

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem bei Übungsaufgabe

    Hallo,

    Ich will im Rahmen einer Übung eine Binäre Suche in einem Array realisieren. Ich dachte ich hätte dies ziemlich Clever gelöst aber nun bekomme ich nur Fehlermeldungen array Index out of Bounds wo ich sie mir einfach nicht Vorstellen kann ...

    Nimmt man den ersten Wert von Musikladen.java kommt beispielsweise Array Index put of Bounds in Z33 , 37 und 18 in BinaereSuche.java

    Ich habe die Klassen BinaereSuche und Artikel geschrieben. Die Musikladendatei war vorgegeben. Die drei anderen Klassen die hierran beteiligt sind sind ebenfalls vorgegeben aber Unwichtig denke ich.



    Binaere Suche

    Code:
    public class BinaereSuche{
    
    	
    	private Artikel[] array;
    	private int index;
    
    
    	public BinaereSuche(Artikel[] p){
    	this.array = p;
    	}
    	
    	
    	public int suche(Artikel suchObjekt){
    	
    	int a = 0;
    	int m = array.length/2;
    	int e = array.length;
    	BS(suchObjekt,a,m,e);
    	return index;
    	}
    	
    	// Hier wird mittels Binaerer Suche nach dem Gewünschten Objekt gesucht
    	public void BS(Artikel SO,int a, int m, int e){
    	
    	SO = SO;
    	int anfang = a;
    	int mitte = m;
    	int ende = e;
    	
    	if (mitte>=array.length||array.length==0||mitte<0){
    	index = -1;
    	}
    	if (array[mitte].compareTo(SO)==0){
    	index = mitte;
    	}
    	if (array[mitte].compareTo(SO)>0){
    	BS(SO,mitte+1,(anfang+ende)/2,array.length);
    	}
    	if (array[mitte].compareTo(SO)<0){
    	BS(SO,anfang,(anfang+mitte)/2,mitte-1);
    	}
    	
    	}
    	
    }

    Artikel
    Code:
    public class Artikel  {
        
        // Attribute
        private String artikelnummer;
        private String hersteller;  
        private String name;
        private String kategorie;
        private double preis;
        
        // Konstruktoren
        public Artikel(String artikelnummer) {
            this.artikelnummer = artikelnummer;
        }
    	
    	public Artikel(String artikelnummer, String hersteller, String name, String kategorie, double preis) {
            this.artikelnummer = artikelnummer;
    		this.hersteller = hersteller;
    		this.name = name;
    		this.kategorie = kategorie;
    		this.preis = preis;
        }
    	
    	public String toString(){
    	return "Name \t= "+this.name+
    		   "Artikelnummer = \t"+this.artikelnummer+
    		   "Hersteller = \t"+this.hersteller+
    		   "Kategorie = \t"+this.kategorie+
    		   "Preis = \t"+this.preis;
    	}
        
        
        public int compareTo(Artikel o){
    	int x = this.artikelnummer.compareTo(o.artikelnummer);
    	return x;
    	}
        
        
        // Getter
        public String getArtikelnummer() {
            return artikelnummer;
        }
        
        public String getHersteller() {
            return hersteller;
        }
        
        public String getName() {
            return name;
        }
    }
    Also kurz Musikladen erzeugt einen Array voll mit Artikel-Objekten der an ein BinaereSuche-Objekt übergeben wird.

    Vielen Dank für eure Hilfe und Hinweise =)

  • #2
    Crosspost geschlossen
    http://www.java-forum.org/java-basic...-ueberall.html
    Christian

    Comment

    Working...
    X