Logo Logo
InfoHome Themen Projekte Links Software
Themen
JavaHamster
BlueJ
Java
Sprachelemente
Abstrakte Datentypen
Swing
Sortieren
Binäre Suche
InsertionSort
SelectionSort
BubbleSort
ShakerSort
Quicksort
MergeSort
Komplexität
HTML
XHTML
CSS
XML
Datenbanken
MySQL
Theoretische Informatik
PHP
Kara
Lego-Roboter
Algorithmen

ShakerSort

Bei ShakerSort handelt es sich um eine Variante von BubbleSort. Dabei wird der Bubblesort-Algorithmus so modifiziert, dass die Richtung des Arraydurchlaufs (innere Schleife) bei jeder Iteration (äußere Schleife) wechselt. Zunächst wird also von links nach rechts, danach von rechts nach links usw. "gebubbelt", in der Hoffnung, dass die Bubbles dann schneller ihre Position erreichen.

Implementation

    static int[] shakerSort(int[] zahlen){
        boolean getauscht;
        int r = zahlen.length - 1;
        int l = 0;
       
        do {
            getauscht = false;
            for(int j=l; j<r; j++) {
                if(zahlen[j]>zahlen[j+1]){
                    swap(j, j+1, zahlen);
                    getauscht = true;
                }
            }
            //zeigeZahlenfolge(zahlen);
            r--;
           
            if(l<r && getauscht){
                getauscht = false;
                for(int j=r; j>l; j--) {
                    if(zahlen[j]<zahlen[j-1]){
                        swap(j, j-1, zahlen);
                        getauscht = true;
                    }
                }
                //zeigeZahlenfolge(zahlen);
                l++;
            }
        } while(l<r && getauscht);
       
    }


» drucken: pdf | html

© 2004-2024 M. Blanke · Ursulaschule · Kleine Domsfreiheit 11-18 · 49074 Osnabrück