[Archiv!] Reine Mathematik, Physik, Chemie usw.: Gehirntrainingsprobleme, die in keiner Weise mit dem Handel zusammenhängen - Seite 583

 
MikeM:

Über die Uhr:

4 Minuten nach dem Start umdrehen 4 Minuten nach dem Start

nach dem Wenden in 4 Min. 4 Min., in 7 Min. 3 Min.

nach weiteren 3 Minuten

in 4-Minuten 1 Minute, in 7-Minuten 0

7 Minuten umdrehen

in 4-Minuten 1 Minute, in 7-Minuten 7

nach einer weiteren Minute.

4 Minuten 0, 7 Minuten 6

die 7 Minuten umdrehen.

in 4-Minuten 0, in 7-Minuten 1

in einer weiteren Minute - der richtige Zeitpunkt!

richtig)
 
Im ersten Durchlauf werden die Einsen, Zweien und Dreien gezählt, und im zweiten Durchlauf wird das "sortierte" Feld mit der richtigen Anzahl von Zahlen gefüllt
 
Erster Durchgang zählen, zweiter Durchgang schreiben. O(n) natürlich.
 
GaryKa:

Hier ist ein Rätsel.

Sicher, es ist langweilig, aber bei Interviews als eine Apotheose des Wissens über die Sortierung Arrays))


Also, ein Sortierproblem

Es gibt ein Feld mit N Zellen, in denen Einheiten, Zweier und Dreier in zufälliger Reihenfolge angeordnet sind.

Entwickeln Sie den besten Sortieralgorithmus.


D.h. nur 3 Auswahlmöglichkeiten von Daten?

Erster Durchgang: Zähle, wie viele Einsen, wie viele Zweien und wie viele Dreien.

Zweiter Durchgang: Wir füllen.

Insgesamt 2 Durchgänge.

 
MikeM:
Erster Durchgang - Zählen von Einsen, Zweien und Dreien, zweiter Durchgang - Füllen der "sortierten" Reihe mit der richtigen Anzahl von richtigen Zahlen
Ja )) armen Kandidaten verstopft durch frühere Fragen über das Sortieren, was nicht für den Spaß der Öffentlichkeit zu tun, und die Blase, und Einsätze, und alle Kombinationen mit Ausnahmen
 
GaryKa:
Ja)) die armen Kandidaten, die zu sehr von früheren Sortierfragen gefesselt sind, tun das, was sie zur Unterhaltung des Publikums tun, mit Blasen, Stichproben und allen möglichen Kombinationen mit Ausnahmen
Was auch immer Sie brauchen, es ist nicht kompliziert. Alles, was kompliziert ist, ist unnötig!
 

Eine einfache Frage (für Programmierer):

A+B=...

 
lWert erwartet :)
 
Dies ist kein Operator irgendeiner Sprache. Es ist die linke Seite der Gleichheit. Was soll auf der rechten Seite geschrieben werden?
 
sand:


D.h. nur 3 Varianten von Daten?

Erster Durchgang: Zähle, wie viele Einsen, wie viele Zweien und wie viele Dreien.

Zweiter Durchgang: Ausfüllen.

Insgesamt 2 Durchgänge.

In einem Durchgang:

Erstellen Sie eine leere Kopie eines Arrays der gleichen Größe, initialisieren Sie es mit twos.

Wir gehen vom Anfang des Feldes aus. Wenn wir auf 1 stoßen, kopieren wir sie vom Anfang, wenn wir auf 3 stoßen, kopieren wir sie vom Ende.

Grund der Beschwerde: