Sie gehen in eine Turnhalle mit 200 Kindern. Es ist der 8. September, also hast du einen brennenden Wunsch, das 98. kürzeste Kind zu finden. Du weißt, dass du sie alle vom kürzesten zum höchsten aufstellen kannst, aber das würde ewig dauern. "Ich weiß", denkst du, "ich könnte QUICKSELECT benutzen!"
Sie gehen in die Menge hinaus, schließen Sie Ihre Augen, strecken Sie Ihren Finger aus und drehen Sie sich dreimal um. Wenn Sie Ihre Augen öffnen, zeigen Sie direkt auf eines der Kinder, Peter Pivot. Du sagst: "Schnell! Jeder, der kleiner ist als Peter, kommt hier rüber. Und jeder, der größer ist als Peter, steht da drüben. Wenn du genauso groß bist wie Peter, kannst du in jede Gruppe gehen."
Die Kinder schleichen herum, und bald stehen sie in den beiden Gruppen. Sie zählen und finden 120 Kinder in der kürzeren Gruppe und 79 Kinder in der größeren Gruppe. Sie wissen, dass das 98. kürzeste Kind in der kürzeren Gruppe sein muss, also sagen Sie Peter und den 79 größeren Kindern, dass sie auf der Tribüne sitzen sollen.
Sie wieder schließen Sie die Augen, strecken Sie Ihren Finger aus, und drehen Sie sich dreimal um. Wenn Sie Ihre Augen öffnen, zeigen Sie direkt auf Peters Schwester Paula Pivot. Du sagst: "Schnell! Diejenigen von euch, die immer noch stehen. Wenn du kleiner bist als Paula, komm und stehe hier drüben. Wenn du größer bist als Paula, dann bleib drüben stehen. Wenn du gleich groß bist, kannst du Geh in jede Gruppe. "
Die Kinder schleichen herum, und bald stehen sie in den beiden Gruppen. Sie zählen und finden 59 Kinder in der kürzeren Gruppe und 60 Kinder in der größeren Gruppe. Sie wissen, dass das 98. kürzeste Kind in der größeren Gruppe sein muss, also sagen Sie Paula und den 59 kürzeren Kindern, dass sie auf der Tribüne sitzen.
Sie wieder schließen Sie die Augen, strecken Sie Ihren Finger aus, und drehen Sie sich dreimal um. Wenn Sie Ihre Augen öffnen, zeigen Sie direkt auf Paulas Cousin Prudence Pivot. Du sagst: "Schnell! Diejenigen von euch, die immer noch stehen. Wenn du kleiner bist als Prudence, komm und steh hier drüben. Wenn du größer als Prudence bist, dann bleib drüben stehen. Wenn du genauso groß bist, kannst du Geh in jede Gruppe. "
Die Kinder schleichen herum, und bald stehen sie in den beiden Gruppen. Du zählst und findest 37 Kinder in der kürzeren Gruppe und 22 Kinder in der größeren Gruppe. Du weißt, dass Paula und 59 andere kleinere Kinder auf der Tribüne sitzen. Zusammen mit den 37 kleineren Kindern, die noch stehen, wissen Sie, dass insgesamt 97 Kinder kürzer sind als Prudence. Deshalb ist Prudence das 98. kürzeste Kind!
Quickselect FTW!
Was * genau * verstehst du nicht? – Gumbo
Das Konzept eines Pivots und wie es während der Rekursion wiederholt ausgewählt wird und wie Listen daher aufgeteilt werden und wie jede Unterliste manipuliert wird. – Edge
Der Drehpunkt ist nur ein Punkt in der Liste, die Sie auswählen, um Ihre Rekursion zu unterstützen (sagen Sie das erste Element in der unsortierten Liste). Dies ergibt eine Zufälligkeit zu den zwei Hälften der Liste, die Sie erhalten werden, also ist es wahrscheinlicher, dass Sie eine gleichmäßige Verteilung zwischen den beiden Hälften erhalten. –