Algorithmen und Datenstrukturen SS09 Foliensatz 15 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 1 / 16 Untere Schranken für das Vergleichsbasierte Sortieren Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 2 / 16 Vergleichsbasierte Sortierverfahren Definition (Vergleichsbasierte Sortieralgorithmen) Ein Sortieralgorithmus S für die total geordnete Menge (D, <) heißt vergleichsbasiert, wenn in A auf Schlüsseln x, y ∈ D nur die Operationen x <y x ≤y und x =y sowie Verschieben und Kopieren angewandt werden. In vergleichsbasierten Sortierverfahren sind Schlüssel atomar, d.h. werden als unzerlegbare Einheiten betrachtet. Beispiele Mergesort, Quicksort, Heapsort, Straight Insertion-Sort, Bubblesort sind vergleichsbasierte Sortieralgorithmen. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 3 / 16 Vergleichsbasierte Sortierverfahren Definition (Vergleichsbasierte Sortieralgorithmen) Ein Sortieralgorithmus S für die total geordnete Menge (D, <) heißt vergleichsbasiert, wenn in A auf Schlüsseln x, y ∈ D nur die Operationen x <y x ≤y und x =y sowie Verschieben und Kopieren angewandt werden. In vergleichsbasierten Sortierverfahren sind Schlüssel atomar, d.h. werden als unzerlegbare Einheiten betrachtet. Beispiele Mergesort, Quicksort, Heapsort, Straight Insertion-Sort, Bubblesort sind vergleichsbasierte Sortieralgorithmen. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 3 / 16 Vergleichsbasierte Sortierverfahren Definition (Vergleichsbasierte Sortieralgorithmen) Ein Sortieralgorithmus S für die total geordnete Menge (D, <) heißt vergleichsbasiert, wenn in A auf Schlüsseln x, y ∈ D nur die Operationen x <y x ≤y und x =y sowie Verschieben und Kopieren angewandt werden. In vergleichsbasierten Sortierverfahren sind Schlüssel atomar, d.h. werden als unzerlegbare Einheiten betrachtet. Beispiele Mergesort, Quicksort, Heapsort, Straight Insertion-Sort, Bubblesort sind vergleichsbasierte Sortieralgorithmen. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 3 / 16 Vergleichsbasierte Sortierverfahren Sei im Folgenden A ein beliebiges vergleichsbasiertes Sortierverfahren. Ohne Einschränkung der Allgemeinheit, können wir Annehmen, dass A Eingaben der Form (a1 , 1), (a2 , 2), . . . , (an , n) erhält, wobei die ai die paarweise verschiedenen Schlüssel sind, nach denen sortiert wird. Beispiel Aus der Eingabe (2, 1), (4, 2), (1, 3), (3, 4) wird (1, 3), (2, 1), (3, 4), (4, 2). Die zweite Komponente eines Paares gibt also eine Permutation π an mittels der die Sequenz (a1 , a2 , . . . , an ) sortiert werden kann, d.h. aπ(1) < aπ(2) < · · · < aπ(n) . Im Beispiel ist π = (3, 1, 4, 2). Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 4 / 16 Vergleichsbasierte Sortierverfahren Sei im Folgenden A ein beliebiges vergleichsbasiertes Sortierverfahren. Ohne Einschränkung der Allgemeinheit, können wir Annehmen, dass A Eingaben der Form (a1 , 1), (a2 , 2), . . . , (an , n) erhält, wobei die ai die paarweise verschiedenen Schlüssel sind, nach denen sortiert wird. Beispiel Aus der Eingabe (2, 1), (4, 2), (1, 3), (3, 4) wird (1, 3), (2, 1), (3, 4), (4, 2). Die zweite Komponente eines Paares gibt also eine Permutation π an mittels der die Sequenz (a1 , a2 , . . . , an ) sortiert werden kann, d.h. aπ(1) < aπ(2) < · · · < aπ(n) . Im Beispiel ist π = (3, 1, 4, 2). Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 4 / 16 Vergleichsbasierte Sortierverfahren Sei im Folgenden A ein beliebiges vergleichsbasiertes Sortierverfahren. Ohne Einschränkung der Allgemeinheit, können wir Annehmen, dass A Eingaben der Form (a1 , 1), (a2 , 2), . . . , (an , n) erhält, wobei die ai die paarweise verschiedenen Schlüssel sind, nach denen sortiert wird. Beispiel Aus der Eingabe (2, 1), (4, 2), (1, 3), (3, 4) wird (1, 3), (2, 1), (3, 4), (4, 2). Die zweite Komponente eines Paares gibt also eine Permutation π an mittels der die Sequenz (a1 , a2 , . . . , an ) sortiert werden kann, d.h. aπ(1) < aπ(2) < · · · < aπ(n) . Im Beispiel ist π = (3, 1, 4, 2). Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 4 / 16 Vergleichsbasierte Sortierverfahren Sei im Folgenden A ein beliebiges vergleichsbasiertes Sortierverfahren. Ohne Einschränkung der Allgemeinheit, können wir Annehmen, dass A Eingaben der Form (a1 , 1), (a2 , 2), . . . , (an , n) erhält, wobei die ai die paarweise verschiedenen Schlüssel sind, nach denen sortiert wird. Beispiel Aus der Eingabe (2, 1), (4, 2), (1, 3), (3, 4) wird (1, 3), (2, 1), (3, 4), (4, 2). Die zweite Komponente eines Paares gibt also eine Permutation π an mittels der die Sequenz (a1 , a2 , . . . , an ) sortiert werden kann, d.h. aπ(1) < aπ(2) < · · · < aπ(n) . Im Beispiel ist π = (3, 1, 4, 2). Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 4 / 16 Vergleichsbasierte Sortierverfahren Damit können wir – wie bereits früher gezeigt – die sortierende Permutation als Ausgabe von A auffassen. Ein (vergleichsbasiertes) Sortierverfahren hat auf n Schlüsseln n! viele verschiedene Ausgaben. Jeder Vergleich schränkt die Menge der noch möglichen Permutationen ein. Es sei S die Menge der noch möglichen Permutationen (zu Beginn alle). 1 Gilt ai < aj , so muss in der Ergebnispermutation π −1 (i) < π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) < π (j)} 1 Gilt ai > aj , so muss in der Ergebnispermutation π −1 (i) > π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) > π (j)} Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 5 / 16 Vergleichsbasierte Sortierverfahren Damit können wir – wie bereits früher gezeigt – die sortierende Permutation als Ausgabe von A auffassen. Ein (vergleichsbasiertes) Sortierverfahren hat auf n Schlüsseln n! viele verschiedene Ausgaben. Jeder Vergleich schränkt die Menge der noch möglichen Permutationen ein. Es sei S die Menge der noch möglichen Permutationen (zu Beginn alle). 1 Gilt ai < aj , so muss in der Ergebnispermutation π −1 (i) < π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) < π (j)} 1 Gilt ai > aj , so muss in der Ergebnispermutation π −1 (i) > π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) > π (j)} Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 5 / 16 Vergleichsbasierte Sortierverfahren Damit können wir – wie bereits früher gezeigt – die sortierende Permutation als Ausgabe von A auffassen. Ein (vergleichsbasiertes) Sortierverfahren hat auf n Schlüsseln n! viele verschiedene Ausgaben. Jeder Vergleich schränkt die Menge der noch möglichen Permutationen ein. Es sei S die Menge der noch möglichen Permutationen (zu Beginn alle). 1 Gilt ai < aj , so muss in der Ergebnispermutation π −1 (i) < π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) < π (j)} 1 Gilt ai > aj , so muss in der Ergebnispermutation π −1 (i) > π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) > π (j)} Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 5 / 16 Vergleichsbasierte Sortierverfahren Damit können wir – wie bereits früher gezeigt – die sortierende Permutation als Ausgabe von A auffassen. Ein (vergleichsbasiertes) Sortierverfahren hat auf n Schlüsseln n! viele verschiedene Ausgaben. Jeder Vergleich schränkt die Menge der noch möglichen Permutationen ein. Es sei S die Menge der noch möglichen Permutationen (zu Beginn alle). 1 Gilt ai < aj , so muss in der Ergebnispermutation π −1 (i) < π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) < π (j)} 1 Gilt ai > aj , so muss in der Ergebnispermutation π −1 (i) > π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) > π (j)} Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 5 / 16 Vergleichsbasierte Sortierverfahren Damit können wir – wie bereits früher gezeigt – die sortierende Permutation als Ausgabe von A auffassen. Ein (vergleichsbasiertes) Sortierverfahren hat auf n Schlüsseln n! viele verschiedene Ausgaben. Jeder Vergleich schränkt die Menge der noch möglichen Permutationen ein. Es sei S die Menge der noch möglichen Permutationen (zu Beginn alle). 1 Gilt ai < aj , so muss in der Ergebnispermutation π −1 (i) < π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) < π (j)} 1 Gilt ai > aj , so muss in der Ergebnispermutation π −1 (i) > π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) > π (j)} Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 5 / 16 Vergleichsbasierte Sortierverfahren Damit können wir – wie bereits früher gezeigt – die sortierende Permutation als Ausgabe von A auffassen. Ein (vergleichsbasiertes) Sortierverfahren hat auf n Schlüsseln n! viele verschiedene Ausgaben. Jeder Vergleich schränkt die Menge der noch möglichen Permutationen ein. Es sei S die Menge der noch möglichen Permutationen (zu Beginn alle). 1 Gilt ai < aj , so muss in der Ergebnispermutation π −1 (i) < π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) < π (j)} 1 Gilt ai > aj , so muss in der Ergebnispermutation π −1 (i) > π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) > π (j)} Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 5 / 16 Vergleichsbasierte Sortierverfahren Damit können wir – wie bereits früher gezeigt – die sortierende Permutation als Ausgabe von A auffassen. Ein (vergleichsbasiertes) Sortierverfahren hat auf n Schlüsseln n! viele verschiedene Ausgaben. Jeder Vergleich schränkt die Menge der noch möglichen Permutationen ein. Es sei S die Menge der noch möglichen Permutationen (zu Beginn alle). 1 Gilt ai < aj , so muss in der Ergebnispermutation π −1 (i) < π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) < π (j)} 1 Gilt ai > aj , so muss in der Ergebnispermutation π −1 (i) > π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) > π (j)} Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 5 / 16 Vergleichsbasierte Sortierverfahren Damit können wir – wie bereits früher gezeigt – die sortierende Permutation als Ausgabe von A auffassen. Ein (vergleichsbasiertes) Sortierverfahren hat auf n Schlüsseln n! viele verschiedene Ausgaben. Jeder Vergleich schränkt die Menge der noch möglichen Permutationen ein. Es sei S die Menge der noch möglichen Permutationen (zu Beginn alle). 1 Gilt ai < aj , so muss in der Ergebnispermutation π −1 (i) < π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) < π (j)} 1 Gilt ai > aj , so muss in der Ergebnispermutation π −1 (i) > π (j) gelten. Damit ergibt sich für den nächsten Vergleich 1 S = {π ∈ S | π −1 (i) > π (j)} Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 5 / 16 Entscheidungsbäume Damit können wir jedes vergleichsbasierte Sortierverfahren als Entscheidungsbaum beschreiben. Sind noch die Permutationen S möglich und wird der Vergleich ai < aj gemacht, notieren wir das in folgender Form: Wobei Si <j = π ∈ S | π −1 (i) < π −1 (j) und Sj<i = π ∈ S | π −1 (i) > π −1 (j) . Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 16 Entscheidungsbäume Damit können wir jedes vergleichsbasierte Sortierverfahren als Entscheidungsbaum beschreiben. Sind noch die Permutationen S möglich und wird der Vergleich ai < aj gemacht, notieren wir das in folgender Form: Wobei Si <j = π ∈ S | π −1 (i) < π −1 (j) und Sj<i = π ∈ S | π −1 (i) > π −1 (j) . Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 16 Entscheidungsbäume Damit können wir jedes vergleichsbasierte Sortierverfahren als Entscheidungsbaum beschreiben. Sind noch die Permutationen S möglich und wird der Vergleich ai < aj gemacht, notieren wir das in folgender Form: S | ai < aj Ja Nein Si <j | ak < al Sj<i | ag < ah Wobei Si <j = π ∈ S | π −1 (i) < π −1 (j) und Sj<i = π ∈ S | π −1 (i) > π −1 (j) . Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 16 Heapsort mit drei Elementen a2 > a3 Ja Nein a2 > a1 a3 > a1 Ja Ja a1 > a3 (312) (132) (321) a2 > a1 (123) Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 7 / 16 (213) (231) Heapsort mit drei Elementen {(123), (132), (213), (231), (312), (321)} a2 > a3 Ja Nein a2 > a1 a3 > a1 Ja Ja a1 > a3 (312) (132) (321) a2 > a1 (123) Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 7 / 16 (213) (231) Heapsort mit drei Elementen {(123), (132), (213), (231), (312), (321)} a2 > a3 Ja {(132), (312), (321)} Nein a2 > a1 a3 > a1 Ja Ja a1 > a3 (312) (132) (321) a2 > a1 (123) Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau {(123), (213), (231)} Seite 7 / 16 (213) (231) Heapsort mit drei Elementen {(123), (132), (213), (231), (312), (321)} a2 > a3 Ja {(132), (312), (321)} Nein a2 > a1 a3 > a1 Ja {(132), (312)} Ja a1 > a3 (312) (132) (321) a2 > a1 (123) Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau {(123), (213), (231)} Seite 7 / 16 (213) (231) Heapsort mit drei Elementen {(123), (132), (213), (231), (312), (321)} a2 > a3 Ja {(132), (312), (321)} Nein a2 > a1 a3 > a1 Ja {(132), (312)} Ja a1 > a3 (312) (132) (321) {(123), (213)} a2 > a1 (123) Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau {(123), (213), (231)} Seite 7 / 16 (213) (231) Entscheidungsbäume Beobachtung Jeder vergleichsbasierte Sortieralgorithmus A induziert für jede Schlüsselzahl n einen Entscheidungsbaum TA,n . Die Wege in TA,n entsprechen den Berechnungen von A. Da A korrekt ist, muss jeder Weg in einem Blatt enden und jedes Blatt kann nur noch eine Permutation enthalten. Außerdem kann jede Permutation nur in einem Blatt vorkommen. Damit hat TA,n mindestens n! Blätter. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 8 / 16 Entscheidungsbäume Beobachtung Jeder vergleichsbasierte Sortieralgorithmus A induziert für jede Schlüsselzahl n einen Entscheidungsbaum TA,n . Die Wege in TA,n entsprechen den Berechnungen von A. Da A korrekt ist, muss jeder Weg in einem Blatt enden und jedes Blatt kann nur noch eine Permutation enthalten. Außerdem kann jede Permutation nur in einem Blatt vorkommen. Damit hat TA,n mindestens n! Blätter. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 8 / 16 Entscheidungsbäume Beobachtung Jeder vergleichsbasierte Sortieralgorithmus A induziert für jede Schlüsselzahl n einen Entscheidungsbaum TA,n . Die Wege in TA,n entsprechen den Berechnungen von A. Da A korrekt ist, muss jeder Weg in einem Blatt enden und jedes Blatt kann nur noch eine Permutation enthalten. Außerdem kann jede Permutation nur in einem Blatt vorkommen. Damit hat TA,n mindestens n! Blätter. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 8 / 16 Entscheidungsbäume Beobachtung Jeder vergleichsbasierte Sortieralgorithmus A induziert für jede Schlüsselzahl n einen Entscheidungsbaum TA,n . Die Wege in TA,n entsprechen den Berechnungen von A. Da A korrekt ist, muss jeder Weg in einem Blatt enden und jedes Blatt kann nur noch eine Permutation enthalten. Außerdem kann jede Permutation nur in einem Blatt vorkommen. Damit hat TA,n mindestens n! Blätter. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 8 / 16 Entscheidungsbäume Beobachtung Jeder vergleichsbasierte Sortieralgorithmus A induziert für jede Schlüsselzahl n einen Entscheidungsbaum TA,n . Die Wege in TA,n entsprechen den Berechnungen von A. Da A korrekt ist, muss jeder Weg in einem Blatt enden und jedes Blatt kann nur noch eine Permutation enthalten. Außerdem kann jede Permutation nur in einem Blatt vorkommen. Damit hat TA,n mindestens n! Blätter. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 8 / 16 Eine Untere Schranke Satz Ist A ein vergleichsbasierter Sortieralgorithmus, dann gibt es für jedes n ∈ N eine Eingabe (a1 , . . . , an ) auf der A mindestens ⌈log(n!)⌉ Vergleiche ausführt. Beweis. TA,n hat mindestens n! externe Knoten. Damit hat er Tiefe ≥ log(n!). Da die Zahl der Vergleiche eine natürliche Zahl ist, erhält man im schlechtewsten Fall mindestens ⌈log(n!)⌉ Vergleiche. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 9 / 16 Eine Untere Schranke Satz Ist A ein vergleichsbasierter Sortieralgorithmus, dann gibt es für jedes n ∈ N eine Eingabe (a1 , . . . , an ) auf der A mindestens ⌈log(n!)⌉ Vergleiche ausführt. Beweis. TA,n hat mindestens n! externe Knoten. Damit hat er Tiefe ≥ log(n!). Da die Zahl der Vergleiche eine natürliche Zahl ist, erhält man im schlechtewsten Fall mindestens ⌈log(n!)⌉ Vergleiche. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 9 / 16 Eine Untere Schranke Satz Ist A ein vergleichsbasierter Sortieralgorithmus, dann gibt es für jedes n ∈ N eine Eingabe (a1 , . . . , an ) auf der A mindestens ⌈log(n!)⌉ Vergleiche ausführt. Beweis. TA,n hat mindestens n! externe Knoten. Damit hat er Tiefe ≥ log(n!). Da die Zahl der Vergleiche eine natürliche Zahl ist, erhält man im schlechtewsten Fall mindestens ⌈log(n!)⌉ Vergleiche. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 9 / 16 Die Untere Schranke Wir untersuchen log(n!) genauer. en = ∞ X ni i =0 und damit n! > i! > nn n! nn . en Weiter gilt ln(n!) = n X i =1 ln(i) ≤ ln n + Z n ln xdx = ln n + n ln n − n + 1. 1 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 10 / 16 Die Untere Schranke Wir untersuchen log(n!) genauer. en = ∞ X ni i =0 und damit n! > i! > nn n! nn . en Weiter gilt ln(n!) = n X i =1 ln(i) ≤ ln n + Z n ln xdx = ln n + n ln n − n + 1. 1 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 10 / 16 Die Untere Schranke Wir untersuchen log(n!) genauer. en = ∞ X ni i =0 und damit n! > i! > nn n! nn . en Weiter gilt ln(n!) = n X i =1 ln(i) ≤ ln n + Z n ln xdx = ln n + n ln n − n + 1. 1 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 10 / 16 Die Untere Schranke Wir untersuchen log(n!) genauer. en = ∞ X ni i =0 und damit n! > i! > nn n! nn . en Weiter gilt ln(n!) = n X i =1 ln(i) ≤ ln n + Z n ln xdx = ln n + n ln n − n + 1. 1 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 10 / 16 Die Untere Schranke Damit gilt n log n − n log e ≤ log(n!) = ln(n!) · log(e) ≤ (n + 1) log n − log(e)(n − 1) Satz Ist A ein vergleichsbasierter Sortieralgorithmus, dann gibt es für jedes n ∈ N eine Eingabe (a1 , . . . , an ) auf der A Θ(n log n) Vergleiche ausführt. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 11 / 16 Die Untere Schranke Damit gilt n log n − n log e ≤ log(n!) = ln(n!) · log(e) ≤ (n + 1) log n − log(e)(n − 1) Satz Ist A ein vergleichsbasierter Sortieralgorithmus, dann gibt es für jedes n ∈ N eine Eingabe (a1 , . . . , an ) auf der A Θ(n log n) Vergleiche ausführt. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 11 / 16 Der mittlere Fall Satz Ist A ein vergleichsbasierter Sortieralgorithmus, dann gilt für die mittlere Anzahl V̄n der benötigten Vergleiche für n Schlüssel: V̄n ≥ log(n!) = Ω(n log n). Beweis. TA,n hat n! äußere Knoten. Die Mittlere Weglänge zu den äußeren Knoten ist 1 1 TEPL(TA,n ) ≥ (n!) log(n!) = log(n!). n! n! Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 12 / 16 Der mittlere Fall Satz Ist A ein vergleichsbasierter Sortieralgorithmus, dann gilt für die mittlere Anzahl V̄n der benötigten Vergleiche für n Schlüssel: V̄n ≥ log(n!) = Ω(n log n). Beweis. TA,n hat n! äußere Knoten. Die Mittlere Weglänge zu den äußeren Knoten ist 1 1 TEPL(TA,n ) ≥ (n!) log(n!) = log(n!). n! n! Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 12 / 16 Der mittlere Fall Satz Ist A ein vergleichsbasierter Sortieralgorithmus, dann gilt für die mittlere Anzahl V̄n der benötigten Vergleiche für n Schlüssel: V̄n ≥ log(n!) = Ω(n log n). Beweis. TA,n hat n! äußere Knoten. Die Mittlere Weglänge zu den äußeren Knoten ist 1 1 TEPL(TA,n ) ≥ (n!) log(n!) = log(n!). n! n! Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 12 / 16 Randomisierte Verfahren Satz Ist A ein randomisierter vergleichsbasierter Sortieralgorithmus – d.h. er führt Zufallsexperimente aus – dann gibt es für jedes n eine Eingabe (a1 , . . . , an ), für die die erwartete Anzuahl von Schlüsselvergleichen ≥ log(n!) ist. Beweis Die Ergebnisse der vom Algorithmus ausgeführten Zufallsergebnisse können vorab ausgeführt werden. Dadurch erhält man eine zufällige Sequenz α von Resultaten, die als zusätzliche Eingabe für den Algorithmus genutzt werden können. Z.B. bei Quicksort die Sequenz der Positionen für das Pivot-Element. P Jede Zufallssequenz α hat eine Wahrscheinlichkeit pα und es gilt pα = 1. α ... Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 13 / 16 Randomisierte Verfahren Satz Ist A ein randomisierter vergleichsbasierter Sortieralgorithmus – d.h. er führt Zufallsexperimente aus – dann gibt es für jedes n eine Eingabe (a1 , . . . , an ), für die die erwartete Anzuahl von Schlüsselvergleichen ≥ log(n!) ist. Beweis Die Ergebnisse der vom Algorithmus ausgeführten Zufallsergebnisse können vorab ausgeführt werden. Dadurch erhält man eine zufällige Sequenz α von Resultaten, die als zusätzliche Eingabe für den Algorithmus genutzt werden können. Z.B. bei Quicksort die Sequenz der Positionen für das Pivot-Element. P Jede Zufallssequenz α hat eine Wahrscheinlichkeit pα und es gilt pα = 1. α ... Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 13 / 16 Randomisierte Verfahren Satz Ist A ein randomisierter vergleichsbasierter Sortieralgorithmus – d.h. er führt Zufallsexperimente aus – dann gibt es für jedes n eine Eingabe (a1 , . . . , an ), für die die erwartete Anzuahl von Schlüsselvergleichen ≥ log(n!) ist. Beweis Die Ergebnisse der vom Algorithmus ausgeführten Zufallsergebnisse können vorab ausgeführt werden. Dadurch erhält man eine zufällige Sequenz α von Resultaten, die als zusätzliche Eingabe für den Algorithmus genutzt werden können. Z.B. bei Quicksort die Sequenz der Positionen für das Pivot-Element. P Jede Zufallssequenz α hat eine Wahrscheinlichkeit pα und es gilt pα = 1. α ... Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 13 / 16 Randomisierte Verfahren Satz Ist A ein randomisierter vergleichsbasierter Sortieralgorithmus – d.h. er führt Zufallsexperimente aus – dann gibt es für jedes n eine Eingabe (a1 , . . . , an ), für die die erwartete Anzuahl von Schlüsselvergleichen ≥ log(n!) ist. Beweis Die Ergebnisse der vom Algorithmus ausgeführten Zufallsergebnisse können vorab ausgeführt werden. Dadurch erhält man eine zufällige Sequenz α von Resultaten, die als zusätzliche Eingabe für den Algorithmus genutzt werden können. Z.B. bei Quicksort die Sequenz der Positionen für das Pivot-Element. P Jede Zufallssequenz α hat eine Wahrscheinlichkeit pα und es gilt pα = 1. α ... Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 13 / 16 Randomisierte Verfahren Satz Ist A ein randomisierter vergleichsbasierter Sortieralgorithmus – d.h. er führt Zufallsexperimente aus – dann gibt es für jedes n eine Eingabe (a1 , . . . , an ), für die die erwartete Anzuahl von Schlüsselvergleichen ≥ log(n!) ist. Beweis Die Ergebnisse der vom Algorithmus ausgeführten Zufallsergebnisse können vorab ausgeführt werden. Dadurch erhält man eine zufällige Sequenz α von Resultaten, die als zusätzliche Eingabe für den Algorithmus genutzt werden können. Z.B. bei Quicksort die Sequenz der Positionen für das Pivot-Element. P Jede Zufallssequenz α hat eine Wahrscheinlichkeit pα und es gilt pα = 1. α ... Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 13 / 16 Randomisierte Verfahren Beweis (Fortsetzung) Sei Aα der deterministische Algorithmus, der mit den Ergebnissen α der Zufallsexperimente ausgeführt wird. Tα (σ) sei die Anzahl der Schlüsselvergleiche auf der Eingabe-Permutation σ. P 1 Tα (σ) ≥ log(n!). Wie oben beobachtet gilt: n! σ Summieren wir über die α’s, ergibt sich log(n!) ≤ X pα · α 1 X 1 XX Tα (σ) ≤ pα · Tα (σ). n! σ n! σ α Da es n! Permutationen gibt, muss es somit ein σ geben mit X pα · Tα (σ) ≥ log(n!). α ... Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 14 / 16 Randomisierte Verfahren Beweis (Fortsetzung) Sei Aα der deterministische Algorithmus, der mit den Ergebnissen α der Zufallsexperimente ausgeführt wird. Tα (σ) sei die Anzahl der Schlüsselvergleiche auf der Eingabe-Permutation σ. P 1 Tα (σ) ≥ log(n!). Wie oben beobachtet gilt: n! σ Summieren wir über die α’s, ergibt sich log(n!) ≤ X pα · α 1 X 1 XX Tα (σ) ≤ pα · Tα (σ). n! σ n! σ α Da es n! Permutationen gibt, muss es somit ein σ geben mit X pα · Tα (σ) ≥ log(n!). α ... Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 14 / 16 Randomisierte Verfahren Beweis (Fortsetzung) Sei Aα der deterministische Algorithmus, der mit den Ergebnissen α der Zufallsexperimente ausgeführt wird. Tα (σ) sei die Anzahl der Schlüsselvergleiche auf der Eingabe-Permutation σ. P 1 Tα (σ) ≥ log(n!). Wie oben beobachtet gilt: n! σ Summieren wir über die α’s, ergibt sich log(n!) ≤ X pα · α 1 XX 1 X Tα (σ) ≤ pα · Tα (σ). n! σ n! σ α Da es n! Permutationen gibt, muss es somit ein σ geben mit X pα · Tα (σ) ≥ log(n!). α ... Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 14 / 16 Randomisierte Verfahren Beweis (Fortsetzung) Sei Aα der deterministische Algorithmus, der mit den Ergebnissen α der Zufallsexperimente ausgeführt wird. Tα (σ) sei die Anzahl der Schlüsselvergleiche auf der Eingabe-Permutation σ. P 1 Tα (σ) ≥ log(n!). Wie oben beobachtet gilt: n! σ Summieren wir über die α’s, ergibt sich log(n!) ≤ X pα · α 1 XX 1 X Tα (σ) ≤ pα · Tα (σ). n! σ n! σ α Da es n! Permutationen gibt, muss es somit ein σ geben mit X pα · Tα (σ) ≥ log(n!). α ... Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 14 / 16 Randomisierte Verfahren Beweis (Fortsetzung) Sei Aα der deterministische Algorithmus, der mit den Ergebnissen α der Zufallsexperimente ausgeführt wird. Tα (σ) sei die Anzahl der Schlüsselvergleiche auf der Eingabe-Permutation σ. P 1 Tα (σ) ≥ log(n!). Wie oben beobachtet gilt: n! σ Summieren wir über die α’s, ergibt sich log(n!) ≤ X pα · α 1 X 1 XX Tα (σ) ≤ pα · Tα (σ). n! σ n! σ α Da es n! Permutationen gibt, muss es somit ein σ geben mit X pα · Tα (σ) ≥ log(n!). α ... Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 14 / 16 Randomisierte Verfahren Beweis (Fortsetzung) Sei Aα der deterministische Algorithmus, der mit den Ergebnissen α der Zufallsexperimente ausgeführt wird. Tα (σ) sei die Anzahl der Schlüsselvergleiche auf der Eingabe-Permutation σ. P 1 Tα (σ) ≥ log(n!). Wie oben beobachtet gilt: n! σ Summieren wir über die α’s, ergibt sich log(n!) ≤ X pα · α 1 X 1 XX Tα (σ) ≤ pα · Tα (σ). n! σ n! σ α Da es n! Permutationen gibt, muss es somit ein σ geben mit X pα · Tα (σ) ≥ log(n!). α ... Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 14 / 16 Randomisierte Verfahren Beweis (Fortsetzung) P pα · Tα (σ) ≥ log(n!) ist aber die erwartete Anzahl von α Schlüsselvergleichen bei Eingabe σ, über alle möglichen Zufallssequenzen α. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 15 / 16 Weiter geht es mit ??? Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 16 / 16