Sortieralgorithmus für Einfügungen!

Sortieren durch Einfügen

Was ist Einfügungssortierung (insertionSort)?

Nehmen Sie eine Zahl von links nach rechts im Array und platzieren Sie sie dann an der entsprechenden Position. Nachdenklich kann es in geordnete Bereiche und ungeordnete Bereiche unterteilt werden. Der geordnete Bereich auf der linken Seite stellt die angeordneten Elemente dar.

Algorithmusschritte

  1. Standardmäßig befindet sich das erste Element links bereits im sortierten Bereich
  2. Nehmen Sie eine Zahl aus dem ungeordneten Bereich (dem zweiten Element)
  3. Durchlaufen Sie die Elemente im geordneten Bereich und platzieren Sie die abgerufenen Elemente an der entsprechenden Position
  4. Führen Sie analog n - 1 Runden aus (wenn der ungeordnete Bereich leer ist)
  5. vollständige Sortierung

Animations-Demo-Link

https://visualgo.net/zh/sorting

Basisfall

  • Zeitkomplexität: O(n^2)
  • Raumkomplexität: O(1)
Array.prototype.insertionSort = function () {
    
    
    for (let i = 1; i < this.length; i++) {
    
    
        const temp = this[i]

        let j = i

        while (j > 0) {
    
    
            if (this[j - 1] > temp) {
    
    
                this[j] = this[j - 1]
            } else {
    
    
                break
            }

            j--
        }

        this[j] = temp
    }
}

const arr = [5, 4, 3, 2, 1]

arr.insertionSort() // [1, 2, 3, 4, 5]

Die zeitliche Komplexität beträgt O(n^2), da es zwei verschachtelte Schleifen gibt, und die zeitliche Komplexität beträgt O(1), da keine linear wachsenden Datenstrukturen verwendet werden.

Ursprünglicher Link: Frontend des Gemüsegartens

추천

출처blog.csdn.net/qq2603375880/article/details/131572427