Ein Algorithmus besteht aus einer Reihe von Anweisungen. Die Definition ist wirklich so einfach. Ein Algorithmus kann so einfach sein wie Anweisungen zu geben:
- Die Strasse entlang gehen.
- Nimm die Erste rechts.
- Finden Sie das zweite Haus auf der linken Seite.
- An die Tür klopfen.
- Liefern Sie das Paket.
Obwohl die Definition des Algorithmus einfach ist, kann die tatsächliche Bedeutung und die Auswirkung auf unser Leben sehr komplex sein.
Ein Beispiel für einen Algorithmus
Ein allgemeines Beispiel für einen Algorithmus, den wir im täglichen Leben verwenden, ist ein Rezept. Diese Anweisungen geben uns alle Zutaten, die wir benötigen, und Anweisungen, was mit diesen Zutaten zu tun ist. Klingt einfach, richtig?
Was aber, wenn Sie nicht wissen, wo der Messbecher aufbewahrt wird? Sie brauchen einen Algorithmus, um ihn zu finden. Möglicherweise benötigen Sie sogar einen Algorithmus für die Verwendung eines Messbechers.
Ein Algorithmus ist zwar ein Satz von Anweisungen, muss aber auch berücksichtigen, wer oder was diese Anweisungen interpretiert. Wenn Sie beispielsweise einem Freund eine Wegbeschreibung dazu geben, wie er von Ihrem Haus zum nächsten Lebensmittelgeschäft kommt, kann Ihr Freund nur wissen, wie er zu diesem Geschäft kommt, wenn er weiß, wo sich Ihr Haus befindet. Sie sind (noch) nicht in der Lage, das Lebensmittelgeschäft eines anderen Freundes zu finden.
So kann ein Algorithmus sowohl einfach als auch komplex sein. Wenn wir in Bezug auf Computeralgorithmen sprechen, ist das Verständnis dessen, was ein Computer kann, ein grundlegender Bestandteil der Formulierungsalgorithmen.
Wie sich die Sortieralgorithmen entwickelt haben
Einer der frühesten entwickelten Algorithmen war die Blasensortierroutine. Die Blasensortierung ist eine Methode zum Sortieren von Zahlen, Buchstaben oder Wörtern, indem ein Datensatz durchlaufen wird, jeder Wertesatz nebeneinander verglichen und bei Bedarf ausgetauscht wird.
Diese Schleife wird wiederholt, bis der Algorithmus die gesamte Liste durchlaufen kann, ohne dass etwas ausgetauscht werden muss. Dies bedeutet, dass die Werte korrekt sortiert sind. Diese Art von Algorithmus wird häufig als rekursiver Algorithmus bezeichnet, da er sich immer wieder selbst wiederholt, bis er die Aufgabe abgeschlossen hat.
Diese Art von Algorithmus könnte so einfach aussehen:
- Gehe zum ersten Wert.
- Überprüfen Sie diesen Wert mit dem nächsten Wert und tauschen Sie bei Bedarf die Positionen aus.
- Gehen Sie zum nächsten Wert und wiederholen Sie den Vergleich.
- Wenn wir uns am Ende der Liste befinden, kehren Sie zum Anfang zurück, wenn während der Schleife ein Wert ausgetauscht wurde.
Aber Blasensorte erwies sich nicht als die meiste effizient Art der Werte sortieren. Im Laufe der Zeit wurden Computer immer schneller in der Lage, komplexe Aufgaben zu erledigen, und neue Sortieralgorithmen kamen zum Vorschein.
Ein solcher Algorithmus durchsucht die erste Liste und erstellt eine zweite Liste sortierter Werte. Diese Methode führt nur einen einzigen Durchlauf durch die ursprüngliche Liste durch und durchläuft bei jedem Wert die zweite Liste, bis der richtige Ort für den Wert gefunden wird. Normalerweise ist es effizienter als die Blasensortiermethode.
Hier können Algorithmen wirklich verrückt werden. Oder wirklich interessant, je nachdem, wie Sie es betrachten.
Während die Blasensortierungsmethode in vielerlei Hinsicht als eine der ineffizientesten Methoden zum Sortieren von Werten gilt, kann die Blasensortierung eine der wichtigsten sein, wenn die ursprüngliche Liste ordnungsgemäß vorsortiert wird die meisten effizient. Das liegt daran, dass in diesem Fall der Bubble-Sortieralgorithmus die Liste einmalig durchläuft und feststellt, dass er korrekt sortiert ist.
Leider wissen wir nicht immer, ob unsere Liste vorsortiert ist. Daher müssen wir einen Algorithmus auswählen, der im Durchschnitt bei einer großen Anzahl von Listen am effizientesten ist.
Was wir aus dem Bubble-Sort-Algorithmus lernen
- Algorithmen entwickeln sich mit der Zeit weiter, da wir effizientere Wege finden, Dinge zu tun und / oder Computer in der Lage sind, komplexe Aufgaben zu erledigen.
- Algorithmen werden manchmal gewählt, weil sie die meiste Zeit "effizienter" sind.
- Nur weil ein Algorithmus meistens effizienter ist, heißt das nicht, dass er in jedem Einzelfall immer das Beste ist.
Facebook-Algorithmen und mehr im Alltag
Algorithmen helfen Menschen jeden Tag zu helfen. Wenn Sie im Web suchen, versucht ein Algorithmus, die besten Suchergebnisse zu finden. Fragen Sie Ihr Smartphone nach Anweisungen, und ein Algorithmus entscheidet, welche Route Sie am besten wählen. Und wenn Sie Facebook durchsuchen, entscheidet ein Algorithmus, welche Facebook-Beiträge unseres Freundes für uns am wichtigsten sind. (Hoffen wir, dass unsere Freunde nicht herausfinden, welches Facebook uns am meisten gefällt!)
Aber algorithmisch zu denken kann uns weit über unser Computerleben hinaus helfen. Es kann sogar helfen, ein besseres Sandwich zu bauen.
Nehmen wir an, ich beginne mit zwei Scheiben Brot, streue Senf auf einer Scheibe und Mayonnaise auf einer anderen Scheibe. Ich lege eine Scheibe Käse mit der Mayonnaise, etwas Schinken, etwas Salat, zwei Tomatenscheiben darauf und verschließe sie mit dieser Scheibe und dem Senf darauf. Gutes Sandwich, richtig?
Auf jeden Fall, wenn ich es gleich esse. Wenn ich es für eine Weile auf dem Tisch liegen lasse, könnte die obere Scheibe Brot matschig werden, wenn Sie etwas von dieser Tomate aufsaugen. Es ist ein Problem, mit dem ich nicht ganz gerechnet hatte, und ich könnte vielleicht jahrelang Sandwiches machen, bevor ich es bemerkte, aber wenn ich das tue, kann ich überlegen, wie ich meinen Algorithmus ändern kann, um ein besseres Sandwich zu bauen.
Zum Beispiel könnte ich die Tomate loswerden. Aber ich möchte diesen Tomatengeschmack nicht verlieren. Stattdessen kann ich die Tomate nach dem Brot und dem Salat auf das Sandwich legen. Dadurch kann der Salat eine Schutzbarriere zwischen der Tomate und dem Brot bilden.
So entwickelt sich ein Algorithmus. Und ein Algorithmus muss nicht von einem Computer ausgeführt werden, um ein Algorithmus zu sein.Ein Algorithmus ist ein Prozess, und Prozesse sind überall um uns herum.