Antwort
 
Themen-Optionen Thema durchsuchen
Alt 16.02.2005, 09:10 Nach oben    #1
Erfahrener Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 529
Standard Minimumsort

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");
    }
}
Sorry, hab ich ohne Code-tags, find die aber auf die schnelle im neuen Design net
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.02.2005, 10:20 Nach oben    #2
Erfahrener Benutzer
 
Benutzerbild von peschmae
 
Registriert seit: 29.05.2004
Beiträge: 228
Standard

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++) {
Wieso nicht bei Stelle? Ich meine bis zu Stelle hast du zu dem Zeitpunkt das Array schon sortiert. Dann könntest du evtl. auch das Zeugs in der Schleife - if-else-Block vereinfachen.

[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");
    }
}
[/Edit]

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
peschmae ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.02.2005, 14:11 Nach oben    #3
Erfahrener Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 529
Standard

Danke, funktioniert. Was mich nur stutzig macht, genau so hab ich's in der Schule auch ausprobiert und da gings nicht!!! Egal war ja sowieso nur Schule *g*
Gottzilla ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:48 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

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 31 32 33 34 35 36 37 38 39 40 41 42 43 44