Ist das noch Insertionsort?

Staddl

Neues Mitglied
Servus - ich bitte um eure Meinung!

In der Schule machen wir gerade Sortieralgorithmen - ich probier's immer selbst bevor ich mir die Referenz ansehe und habe folgenden Algorithmus entworfen (Kommentare bitte einfach ignorieren):

Java:
int[] arr = {9, 2, 7, 5, 4, 3, 1, 8, 6};
int temp;

System.out.println("--Insertionsort--");
System.out.println("Unsortiert: " + Arrays.toString(arr));



for (int i = 1; i < arr.length; i++) {  //das erste Element zum vor das 1. Element einfügen ist sinnlos => wir starten bei i=1

    for (int j = 0; j < i; j++) {
        if (arr<arr[j]) {
            temp=arr;
            arr=arr[j];
            arr[j]=temp;
        }
    }
    /* innere For-Schleife bis zu <i, da das i'te Elementt ein nach rechts verschobenes ist => muss größer sein als alles links davon
    *die 3ecks-Vertauschung findet so oft statt, wie viele größere Elemente es vor dem i'ten Element gibt
    * im Prinzip wird das i'te Elemente mit dem j'ten Element vertauscht, dann wieder das i'te (was jetzt das vorherige j'te ist)
    * wieder mit dem neuen j'ten Elementt. Dieses ist dann wieder das i'te Element usw., bis links vom i'ten Element keine
    * Elemente < arr mehr sind */

    System.out.println("Zwischenstand: " + Arrays.toString(arr));
}

System.out.println("Sortiert: " + Arrays.toString(arr));

So, jetzt wird ja (scheinbar) mit jedem durchlauf der äußeren For-Schleife ein Element eingefügt, so wie gewollt. Wie ihr es aber wahrscheinlich schon seht vertausche ich eigentlich Elemente von 0 bis i, je nachdem welches halt als erstes >arr(i) ist.
Nun meine eigentliche Frage: ist das Insertionsort (wenn auch schlechter als die Norm), oder einfach irgendein Algorithmus?

Danke fürs durchlesen!

P.S. das meine ich mit "Norm": https://www.geeksforgeeks.org/insertion-sort/
 
Y

yfons123

Gast
warum sollte das ding überhaupt kompilieren?
( nicht notwendige kommentare zum durchlesen sind in unter 1 sec zu löschen ;) )
 

Meniskusschaden

Top Contributor
Beim Einfügen des Codes sind offenbar einige [i] verloren gegangen und haben die kursive Darstellung bewirkt.

Nun meine eigentliche Frage: ist das Insertionsort (wenn auch schlechter als die Norm), oder einfach irgendein Algorithmus?
Es gibt eine sortierte und eine unsortierte Teilmenge der Elemente. Das jeweils zu sortierende Element wird der unsortierten Teilmenge auf triviale Weise entnommen und der sortierten Teilmenge auf komplexere Weise hinzugefügt. Der eigentliche Sortieraufwand entsteht also beim Einfügen. Für mich sind damit die wesentlichen Kriterien für InsertionSort erfüllt.
 

KonradN

Super-Moderator
Mitarbeiter
Also das Insertionsort sollte aber doch eigentlich keine Vertauschungen haben.

Die Idee bei Insertionsort ist, dass immer ein Element entnommen und an der richtigen Stelle eingefügt wird. Damit keine Vertauschungen sondern lediglich Verschiebeoperationen.

Auf Grund dieses Unterschieds würde ich diesen Algorithmus nicht als Insertionsort bezeichnen.

Insertionsort entnimmt der unsortierten Eingabefolge ein beliebiges Element und fügt es an richtiger Stelle in die (anfangs leere) Ausgabefolge ein. Geht man hierbei in der Reihenfolge der ursprünglichen Folge vor, so ist das Verfahren stabil. Wird auf einem Array gearbeitet, so müssen die Elemente hinter dem neu eingefügten Element verschoben werden. Dies ist die eigentlich aufwendige Operation des Insertionsorts. Das Auffinden der richtigen Einfügeposition kann über eine binäre Suche vergleichsweise effizient erfolgen.

Aber das mag eine Definitionsfrage sein, aber das ist der Punkt, der mir etwas aufstösst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
O Warum will die MEthode noch am Ende einr eturn Java Basics - Anfänger-Themen 10
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
CptK Vererbung Attributtyp in Super-Klasse noch nicht festlegen Java Basics - Anfänger-Themen 1
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
M Untersuchen ob ein Graph nach entfernen einer Kante immer noch zusammenhängend ist Java Basics - Anfänger-Themen 70
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
J Zweck von Interfaces immer noch nicht klar Java Basics - Anfänger-Themen 3
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
P Cäsear verschlüsselung irgendwas passt noch nicht Java Basics - Anfänger-Themen 2
B java.util.Date noch zeitgemäß? Java Basics - Anfänger-Themen 6
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
S Noch eine Frage zur Rekursion... Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
M Variable noch erstellen oder lieber so? Java Basics - Anfänger-Themen 1
V Bin eigentlich noch VOR dem Anfang .... Java Basics - Anfänger-Themen 9
T Anzeige, wie lange es noch dauert bis ein File gesendet ist. Java Basics - Anfänger-Themen 2
A Wie kann ich mein Programm noch effizienter machen? Java Basics - Anfänger-Themen 1
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
M Noch immer Probleme mit exec Java Basics - Anfänger-Themen 15
H Geht dieser Code noch einfacher (try catch finally) Java Basics - Anfänger-Themen 7
P Geht dieser Code noch einfacher? Java Basics - Anfänger-Themen 16
I fertige xml-datein in eine noch aufzubauende xml-datei einfügen Java Basics - Anfänger-Themen 4
M Java von kopf bis Fuß noch zeitgemäß ? Java Basics - Anfänger-Themen 18
S noch ein ArrayIndexOutOfBoundsException Fehler Java Basics - Anfänger-Themen 2
Q queue.remove Element trotzdem noch vorhanden. Java Basics - Anfänger-Themen 10
S Musik einfügen funktioniert noch nicht Java Basics - Anfänger-Themen 6
P Noch zum Thema Arrays Java Basics - Anfänger-Themen 13
K Wofür wird heute noch die Stack Klasse in Java genutzt Java Basics - Anfänger-Themen 4
O Noch einmal Methoden Java Basics - Anfänger-Themen 9
T socket.close aber verbindung besteht noch Java Basics - Anfänger-Themen 4
C Threads Auffindung noch laufender Programmteile Java Basics - Anfänger-Themen 2
M Weder Consolenausgabe noch Fehlermeldung! Java Basics - Anfänger-Themen 5
E Prüfen, ob entfernte JVM noch aktiv ist? Java Basics - Anfänger-Themen 5
S ArrayList nur ergänzen wenn Element noch nicht vorhanden Java Basics - Anfänger-Themen 4
J Wie java programm noch schneller machen? Java Basics - Anfänger-Themen 30
C Umsteiger hat noch ein paar Fragen Java Basics - Anfänger-Themen 11
M immer noch usedelimiter Java Basics - Anfänger-Themen 4
M file löschen, streams evtl noch offen Java Basics - Anfänger-Themen 7
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
K Bestehenden Chat modifizieren (noch ein Anfänger!) Java Basics - Anfänger-Themen 7
C Hilfe!!! Ich werd noch wahnsinnig... Java Basics - Anfänger-Themen 3
I Module und Testumgebung noch nicht verstanden... Java Basics - Anfänger-Themen 6
G Weder IE noch Firefox zeigen mir Java Applets an Java Basics - Anfänger-Themen 5
K Scrollpane - versteh nur noch Fragezeichen Java Basics - Anfänger-Themen 6
K Alle noch nicht umgedrehte Karten umdrehen ? Java Basics - Anfänger-Themen 2
S @ override + noch was Java Basics - Anfänger-Themen 3
D Kann noch fast nichts, funktioniert auch fast nichts! Java Basics - Anfänger-Themen 8
K Hier noch ein Konstruktor aufbauen Java Basics - Anfänger-Themen 6
G Threads prüfen, ob diese noch laufen. Java Basics - Anfänger-Themen 3
S Wie runden man noch mal auf bestimmte stellen? Java Basics - Anfänger-Themen 8
N Ich habs immer noch nicht hinbekommen :( Java Basics - Anfänger-Themen 3
D noch ein kleines Problem Java Basics - Anfänger-Themen 4
M OOP und ich - irgendwie verträgt sich das noch nicht. Java Basics - Anfänger-Themen 6
F jbutton and noch was^^ Java Basics - Anfänger-Themen 15
R Noch ein paar Anfängerfragen. Java Basics - Anfänger-Themen 4
R Noch eine Frage: Breite des Applets im Browser ermitteln Java Basics - Anfänger-Themen 7
G Array-Länge bei Erzeugung noch unbekannt - wie erzeugen? Java Basics - Anfänger-Themen 12
T Binärbaum - noch ein "klitzekleiner Fehler" Java Basics - Anfänger-Themen 4
P Textdateischreiben, etwas fehlt noch bzw. 1 error kommt Java Basics - Anfänger-Themen 4
L Noch immer Threat-Problem Java Basics - Anfänger-Themen 8
J referenz auf noch nicht erzeugte objekte? Java Basics - Anfänger-Themen 2
J Noch ein Parser Problem Java Basics - Anfänger-Themen 7
M Noch eins: TextFeldArray hinzufügen Java Basics - Anfänger-Themen 7
M Zufallszahlen fertig! aber nice to have noch offen Java Basics - Anfänger-Themen 5
C Abfragen, ob Objekt noch existiert Java Basics - Anfänger-Themen 5
A wieviel platz ist noch frei? Java Basics - Anfänger-Themen 2
J objektorientiert - noch immer nicht begriffen Java Basics - Anfänger-Themen 6
A Noch ne kleine Beanshell Frage Java Basics - Anfänger-Themen 7
S Testen ob ein Char Array noch nicht belegt ist! Java Basics - Anfänger-Themen 3
M Testen ob ein Sample noch abgespielt wird Java Basics - Anfänger-Themen 6
N Mittelwert (fast fertig, nur noch 2 fehler ;-) ) Java Basics - Anfänger-Themen 14
N Und noch eine Frage über getRuntime() Java Basics - Anfänger-Themen 4
D Programm läuft - trotzdem noch ein Fehler drin. Java Basics - Anfänger-Themen 21
G Trotz Abfrage immer noch Zahlen doppelt Java Basics - Anfänger-Themen 3
S Noch ungelöst ! Klasse JTable und Klasse Drucken verknüpfen. Java Basics - Anfänger-Themen 8
A Noch ein Anfänger..... Java Basics - Anfänger-Themen 7
M Und noch eine Java Basics - Anfänger-Themen 2
G Fenster maximieren? Suche genutzt geht aber noch nich :( Java Basics - Anfänger-Themen 16
A noch mal bitoperater Java Basics - Anfänger-Themen 2
S Rekursiver InsertionSort ohne Schleife Java Basics - Anfänger-Themen 7
B Zufallszahlen & Laufzeitmessung (insertionSort) Java Basics - Anfänger-Themen 7
N InsertionSort sortiert erste Zahl im Array nicht mit? Java Basics - Anfänger-Themen 6
N Verständnisproblem InsertionSort. Java Basics - Anfänger-Themen 2
B InsertionSort Java Basics - Anfänger-Themen 12
B Insertionsort verkettete Liste Java Basics - Anfänger-Themen 4
S Insertionsort probleme Java Basics - Anfänger-Themen 2
P Insertionsort Java Basics - Anfänger-Themen 4
S SelectionSort und InsertionSort Java Basics - Anfänger-Themen 1
M insertionsort Java Basics - Anfänger-Themen 9
B insertionsort Java Basics - Anfänger-Themen 12
T InsertionSort Problem Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben