Möglicherweise liegt die Verwirrung darin, dass Sie eine Beschreibung zum Sortieren einer verknüpften Liste mit einer Beschreibung zum Sortieren eines Arrays vergleichen . Aber ich kann nicht sicher sein, da Sie Ihre Quellen nicht zitiert haben.
Der einfachste Weg, Sortieralgorithmen zu verstehen, besteht oft darin, eine detaillierte Beschreibung des Algorithmus zu erhalten (nicht vage Dinge wie "Diese Sortierung verwendet Swap. Irgendwo. Ich sage nicht, wo"), um ein paar Spielkarten zu bekommen (5-10 sollten ausreichen für einfache Sortieralgorithmen) und führen Sie den Algorithmus von Hand aus.
Auswahlsortierung: Durchsuchen Sie die unsortierten Daten nach dem kleinsten verbleibenden Element und tauschen Sie sie an die Position unmittelbar nach den sortierten Daten aus. Wiederholen, bis fertig. Wenn Sie eine Liste sortieren, müssen Sie das kleinste Element nicht in Position verschieben. Stattdessen können Sie den Listenknoten von seiner alten Position entfernen und an der neuen Position einfügen.
Einfügesortierung: Nehmen Sie das Element unmittelbar nach den sortierten Daten, durchsuchen Sie die sortierten Daten, um den Ort zu finden, an dem sie abgelegt werden sollen, und legen Sie es dort ab. Wiederholen, bis fertig.
Die Einfügesortierung kann während der "Scan" -Phase Swap verwenden, muss dies jedoch nicht und ist nicht die effizienteste Methode, es sei denn, Sie sortieren ein Array eines Datentyps, der: (a) nicht verschoben, nur kopiert oder ausgetauscht werden kann; und (b) ist teurer zu kopieren als zu tauschen. Wenn beim Einfügen eine Sortierung verwendet wird, suchen Sie gleichzeitig nach der Stelle und platzieren das neue Element dort, indem Sie das neue Element wiederholt mit dem Element unmittelbar davor austauschen, solange das Element davor größer als ist es. Sobald Sie ein Element erreicht haben, das nicht größer ist, haben Sie die richtige Position gefunden und fahren mit dem nächsten neuen Element fort.