![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Erfahrener Benutzer
Registriert seit: 02.02.2005
Beiträge: 513
|
Hi Leute, erstmal: WOW, bin ganz erschrocken vom neuen Design *g*! So jetzt zur Frage. Wir sollen in der Berufsschule einen Sortieralgorythmus schreiben (wenn mans genau nimmt den Minimumsort). Hab ich dann auch gemacht. Funktioniert auch sehr gut, bis eine Zahl doppelt vorkommt. Wie kann ich meinen Code umschreiben, dass er auch mit doppelten Zahlen umgehen kann?
Code:
public class MiniSort {
public static void main(String[] args) {
System.out.println("\n---MinimumSort---\n");
int zufallszahlen[] = new int[10];
int kleinste = 101;
int Position = 0;
System.out.println("Die Zufallszahlen unsortiert sehen so aus:");
for (int i = 0; i < zufallszahlen.length; i++) {
zufallszahlen[i] = (int)(Math.random() * 100 + 1);
System.out.print(zufallszahlen[i] + " ");
}
System.out.println("\n\nDie Zufallszahlen sehen sortiert so aus:");
for (int Stelle = 0; Stelle < zufallszahlen.length; Stelle++) {
for (int i = 0; i < zufallszahlen.length; i++) {
if ((zufallszahlen[i] < kleinste) && (Stelle == 0)) {
kleinste = zufallszahlen[i];
Position = i;
}
else if ((zufallszahlen[i] < kleinste) && (Stelle >= 1)) {
if (zufallszahlen[i] > zufallszahlen[Stelle - 1]) {
kleinste = zufallszahlen[i];
Position = i;
}
}
}
zufallszahlen[Position] = zufallszahlen[Stelle];
zufallszahlen[Stelle] = kleinste;
kleinste = 101;
}
for (int i = 0; i < zufallszahlen.length; i++) {
System.out.print(zufallszahlen[i] + " ");
}
System.out.println("\n");
}
}
|
|
|
|
|
|
Nach oben #2 |
|
Erfahrener Benutzer
Registriert seit: 29.05.2004
Beiträge: 228
|
Dafür benutzt man dann normalerweise einen Debugger. Damit kann man ganz genau gucken was gemacht wird
Frage (gut möglich dass ich da was nicht bedacht habe) aber wozu fängst du in der inneren Schleife bei 0 an? Code:
for (int i = 0; i < zufallszahlen.length; i++) {
[Edit]Ging ja ganz leicht. So: Code:
public class MiniSort {
public static void main(String[] args) {
System.out.println("\n---MinimumSort---\n");
int zufallszahlen[] = new int[10];
int kleinste = 101;
int Position = 0;
System.out.println("Die Zufallszahlen unsortiert sehen so aus:");
for (int i = 0; i < zufallszahlen.length; i++) {
zufallszahlen[i] = (int)(Math.random() * 100 + 1);
if(i == 7 || i == 3)
zufallszahlen[i] = 12;
System.out.print(zufallszahlen[i] + " ");
}
System.out.println("\n\nDie Zufallszahlen sehen sortiert so aus:");
for (int Stelle = 0; Stelle < zufallszahlen.length; Stelle++) {
for (int i = Stelle; i < zufallszahlen.length; i++) {
if (zufallszahlen[i] < kleinste) {
kleinste = zufallszahlen[i];
Position = i;
}
}
zufallszahlen[Position] = zufallszahlen[Stelle];
zufallszahlen[Stelle] = kleinste;
kleinste = 101;
}
for (int i = 0; i < zufallszahlen.length; i++) {
System.out.print(zufallszahlen[i] + " ");
}
System.out.println("\n");
}
}
MfG Peschmä
__________________
Amazon.de | The Java Trap | Freie Software | Freie Software vs. Open Source | GNU Classpath | GCJ | SableVM "We should forget about small efficiencies, say about 97% of the time: Premature optimization is the root of all evil." - Donald Knuth |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|