Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Suche im Array » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (2): [1] 2 nächste » Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Suche im Array
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
neuling96
unregistriert
Suche im Array Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
public class Suche {
public static boolean suchebinaer(int a, int [] array){
if(array.length==1 && a != array[0]) {
return false;
}else {
int m= array.length/2;
if(array[m]==a){
return true;
}else {
if(array[m]>a){
int[]arrayx=new int [m];
for(int i=0; i<m; i++){
arrayx[i]=array[i];
}
return suchebinaer(a, arrayx);
}else {
int[]arrayx=new int [m];
for(int i=0; i<m; i++){
arrayx[i]=array[i+m];
}
return suchebinaer(a, arrayx);
}
}
}
}
}



keine compilerfehler und ich glaube das passt so???

neuling96 hat dieses Bild (verkleinerte Version) angehängt:
Unbenannt.jpg

20.01.2015 19:38
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
suchebinaer(3, new int[] { 1, 2, 3, 7, 9, 13 })

liefert mir false, obwohl da eine 3 drin ist.

Die Idee, das Array für den Methodenaufruf zu kopieren, gefällt mir nicht (denke an den Speicher, der da unnötig belegt wird, das macht das Programm unnötig langsam. Übergebe lieber das ganze Array sowie Start und Ende des Suchintervalls.

__________________
Syntax Highlighting fürs Board (Link)
20.01.2015 19:44 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ich sehe den einen fall habe ich nicht betratet
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:

public class Suche {
public static boolean suchebinaer(int a, int [] array){
if(array.length==1 && a != array[0]) {
return false;
}else {
int m= array.length/2;
if(array[m]==a){
return true;
}else {
if(array[m]>=a){
int[]arrayx=new int [m+1];
for(int i=0; i<=m; i++){
arrayx[i]=array[i];
}
return suchebinaer(a, arrayx);
}else {
int[]arrayx=new int [m];
for(int i=0; i<m; i++){
arrayx[i]=array[i+m];
}
return suchebinaer(a, arrayx);
}
}
}
}
}



"Übergebe lieber das ganze Array sowie Start und Ende des Suchintervalls"
ich weiß nicht wie ich es umsetzten soll
20.01.2015 19:59
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
private static boolean suchebinaer(int a, int[] array, int start, int end) {
	int mitte = (start + end) / 2;
	return array[mitte] == a || suchebinaer(a, array, start, mitte - 1)
			|| suchebinaer(a, array, mitte + 1, end);

}

public static boolean suchebinaer(int a, int[] array) {
	if (array.length == 0) {
		return false;
	}
	return suchebinaer(a, array, 0, array.length - 1);
}


__________________
Syntax Highlighting fürs Board (Link)
20.01.2015 20:04 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

wow das ist kurz! und so schnell gelöst großes Grinsen
würde ich für mein code punkt abzüge bekommen, wegen der Ineffizienz ?
20.01.2015 20:13
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Keine Ahnung, ich weiß nicht, was von dir erwartet wird.

__________________
Syntax Highlighting fürs Board (Link)
20.01.2015 20:14 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ich auch nicht großes Grinsen

die uni sieht nicht vor weiter in java zu vertiefen!
Es wird noch Hoare-Kalkül und Datenstrukturen eingeführt und das wars dann mit java.
kannst du Themen empfehlen, die ich unbedingt behandelt haben soll?
20.01.2015 20:20
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zum einen ist das von Uni zu Uni verschieden, zum anderen bin ich glaube ich nicht qualifiziert, das zu beantworten, ich studiere nicht einmal Informatik. Wirf einfach einen Blick ins Modulhandbuch, da steht doch drin, was alles behandelt wird.

__________________
Syntax Highlighting fürs Board (Link)
20.01.2015 20:23 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

oha kein Infostudent und so gut geschockt


wie immer vielen dank Wink
20.01.2015 20:27
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Nur beim Programmieren. Ich studiere Elektro-und Informationstechnik. Da lerne ich zwar auch Programmieren, boolsche Algebra und so. Aber im theoretischen Bereich sieht es nicht so gut aus, das Hoare-Kalkül sagt mir nur vom Namen her etwas.

__________________
Syntax Highlighting fürs Board (Link)
20.01.2015 20:30 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

nochmal wow großes Grinsen

hast du dir programmieren selbst beigebracht?
20.01.2015 20:43
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Im Studium hatte ich bereits 2 Semester C und eins C++, zur Zeit noch Java.
In der Schule man ein wenig Delphi (die Sprache ist zwar objektorientiert, aber wir kamen noch nichtmal bis zu Funktionen, haben alles in die main geschrieben.
Ich habe mich dann selbst weiter damit beschäftigt und mir auch C# beigebracht. Mit den beiden Sprachen programmiere ich auch in der Arbeit (Delphi nur, um alten Code zu reparieren).

__________________
Syntax Highlighting fürs Board (Link)
20.01.2015 20:47 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von eulerscheZahl
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
private static boolean suchebinaer(int a, int[] array, int start, int end) {
	int mitte = (start + end) / 2;
	return array[mitte] == a || suchebinaer(a, array, start, mitte - 1)
			|| suchebinaer(a, array, mitte + 1, end);

}

public static boolean suchebinaer(int a, int[] array) {
	if (array.length == 0) {
		return false;
	}
	return suchebinaer(a, array, 0, array.length - 1);
}


für (5, new int[] { 1, 2,3, 7, 13 }))
liefert ?

neuling96 hat dieses Bild (verkleinerte Version) angehängt:
Unbenannt.jpg

21.01.2015 15:57
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Da habe ich die Abbruchbedinung verbockt.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
private static boolean suchebinaer(int a, int[] array, int start, int end) {
	if (start >= end) {
		return array[start] == a;
	}
	int mitte = (start + end) / 2;
	return array[mitte] == a 
			|| suchebinaer(a, array, start, mitte - 1)
			|| suchebinaer(a, array, mitte + 1, end);
}

sollte jetzt passen.

__________________
Syntax Highlighting fürs Board (Link)
21.01.2015 16:04 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ja danke smile
21.01.2015 16:18
Seiten (2): [1] 2 nächste » Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Suche im Array