ERLEDIGT
JA
JA
ANTWORTEN
28
28
ZUGRIFFE
5544
5544
EMPFEHLEN
-
vom prinzip her klar,
ich muss mein array hald immer teilen bis die länge 1 is.... aber wenn ich ein array der länge 1000 hab, dann muss ich ja erst 2 machen der länge 500 dann wieder 2 der länge 250 usw... und was für den fall dass ich die länge meines ursprungsarrays nicht weiß? wie soll ich dann die länge der teilarrays bestimmen?
-
Du kennst die länge deines Arrays immer, weil du diese Abfragen kannst mit array.length.
Ich hatte dir die komplette Lösung schon in worten gesagt, du musst es nur noch in Java-Code schreiben. Ich bin jetzt bis morgen weg, also kann heute auch nicht mehr antworten.
MFG
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
und mit welcher methode füllst du die arrays wieder? mit arrays.copyof oder system.arraycopy? was is da zu empfehlen? geht sich leichter auch oder?
-
Du kannst doch einfach
Code :1
einArray[0] = nochEinArray[0]
machen
MFG
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
hab das ganze jetzt anders gelöst...
aber danke für deine hilfe!
-
09.07.07 23:35 #21
- Registriert seit
- May 2007
- Ort
- Riedstadt (Hessen)
- Beiträge
- 354
Warum ein neues Array? Mach es doch nicht komplizierter als es ist.
Gruss
Code java: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
package de.tutorials; public class ArraySplitter { double myArray [] = {1,2,3,4,5,6,7,8,9,10,11}; ArraySplitter() { System.out.println(sum(this.myArray)); } public double sum(double[] myArray) { return sumHelper(myArray,0,myArray.length-1); } private double sumHelper(double [] array, int start, int end) { if (start == end) return array[start]; int mitte = (end - start) /2; return sumHelper(array, start, start + mitte) + sumHelper(array ,start + mitte + 1, end); } public static void main(String[] args) { new ArraySplitter(); } }
I didn't write this; a very complex macro did.
-
@limago
so funktioniert es natürlich auch.
Hatte mir keine zu großen Gedanken gemacht und das war die erste Lösung die mir dann so in den Kopf kam.
MFG
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
21.12.11 17:56 #23
- Registriert seit
- Dec 2011
- Beiträge
- 4
Ja ich weiß der Threat ist alt. Stehe aber vor dem gleichen Problem und die vorgeschlagene Lösung ist mir zu komplex. Ich habe mich mal selber drangesetzt und was gebastelt allerdings funktioniert das ganze noch nicht. Hat jemand eine Idee?
Code :1
Geändert von BlauerElefant (30.12.11 um 21:52 Uhr)
-
27.12.11 14:28 #24
- Registriert seit
- May 2007
- Ort
- Riedstadt (Hessen)
- Beiträge
- 354
Hi,
ich weiss zwar nicht warum Deine Lösung einfacher sein soll als meine, aber Dein Fehler ist
int mitte = (anfang + ende) / 2;
Es muss heißen:
int mitte = (ende - anfang) / 2;
dann passt es.
Guten Rutsch....I didn't write this; a very complex macro did.
-
28.12.11 21:20 #25
- Registriert seit
- Dec 2011
- Beiträge
- 4
Erstmal danke. Leider ist das noch nicht die Lösung des Problems. Das Programm läuft leider noch nicht.
-
28.12.11 22:52 #26
- Registriert seit
- May 2007
- Ort
- Riedstadt (Hessen)
- Beiträge
- 354
Kannst Du das mal präzisieren. Ich habe Deinen Code kopiert und laufen lassen. Dies hat erwartungsgemäß zu einem Stapelüberlauf geführt. Danach habe ich wie beschrieben den Code geändert und siehe da, alles hat funktioniert. Also beschreibe doch mal Deinen Fehler und poste ggf. die Fehlermeldung und Deinen neuen Code.
I didn't write this; a very complex macro did.
-
29.12.11 17:37 #27
- Registriert seit
- Dec 2011
- Beiträge
- 4
Also die Fehlermeldung lautet folgendermaßen:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
at Teile.teile(Teile.java:17)
at Teile.teile(Teile.java:25)
at Teile.teile(Teile.java:25)
at Teile.teile(Teile.java:25)
at Teile.teile(Teile.java:25)
at Teile.teile(Teile.java:25)
at Teile.teile(Teile.java:25)
at Teile.teile(Teile.java:25)
at Teile.teile(Teile.java:25)
at Teile.teile(Teile.java:25)
at Teile.teile(Teile.java:25)
at Teile.teile(Teile.java:25)
at Teile.teile(Teile.java:25)
at Teile.teile(Teile.java:25)
at Teile.main(Teile.java:6)Geändert von BlauerElefant (30.12.11 um 21:51 Uhr)
-
29.12.11 19:04 #28
- Registriert seit
- May 2007
- Ort
- Riedstadt (Hessen)
- Beiträge
- 354
Äh, also die Subtraktion ist nicht kommuntativ. "(anfang - ende) / 2" ist nicht dasselbe wie "(ende - anfang) / 2". In Deinem Fall ist das Ergebnis negativ. Deswegen auch der Arrayunterlauf....
Debuggen oder mal die Werte ausgeben hilft oft ungemein.
Guten Rutsch.I didn't write this; a very complex macro did.
-
30.12.11 21:50 #29
- Registriert seit
- Dec 2011
- Beiträge
- 4
Oh man Kleinigkeit übersehen. Danke, hast mir den Tag gerettet.

Ebenfalls guten Rutsch.
Ähnliche Themen
-
Array teilen
Von pflaster999 im Forum C/C++Antworten: 5Letzter Beitrag: 14.06.09, 17:03 -
überdimensionales array teilen
Von Lobedan im Forum PHPAntworten: 2Letzter Beitrag: 13.06.09, 00:50 -
in C ein Array mit For aufsummieren...
Von Zorrtis im Forum C/C++Antworten: 11Letzter Beitrag: 21.10.08, 11:56 -
Array nach bestimmten Muster teilen
Von Breuker im Forum PHPAntworten: 6Letzter Beitrag: 03.04.07, 12:30 -
String variabler Hälfte in mehrere Teile teilen und Array erstellen
Von suedi im Forum PHPAntworten: 5Letzter Beitrag: 12.12.03, 16:13





Zitieren

Login





