Dieses eine Interview-Frage, die ich vor kurzem im Internet gefunden:Über Blasensortierung vs Mergesort
Wenn Sie eine Funktion implementieren werden, die ein Integer-Array als Eingabe verwendet und die maximale zurückkommt, würden Sie Blase Art verwenden oder merge sort, um diese Funktion zu implementieren? Was ist, wenn die Array-Größe weniger als 1000 ist? Was ist, wenn es größer als 1000 ist? Diese
ist, wie ich denke darüber nach:
Erstens, es ist wirklich seltsam Sortierung zu verwenden, um die obige Funktion zu implementieren. Sie können nur einmal durch das Array gehen und das Maximum finden. Zweitens, wenn Sie eine Wahl zwischen den beiden treffen müssen, dann ist Bubble-Sort besser - Sie müssen nicht die gesamte Bubble-Sortierprozedur implementieren, sondern müssen nur den ersten Durchlauf durchführen. Es ist besser als merge Sortieren in Zeit und Raum.
Gibt es Fehler in meiner Antwort? Habe ich etwas vergessen?
Ich denke, du hast Recht, die Prämisse abzulehnen: ein linearer Durchlauf (& fester Raum) ist alles was du brauchst, um den max. Wenn ein Interviewer Sie zur Auswahl zwingt, würde ich Merge Sort vorschlagen, da es eine bessere "O (n log n)" -Zeitkomplexität hat. – phs
Dies könnte eine Frage sein, die entwickelt wurde, um Noobs auszurotten ...? –