私はインタビューでこの質問をされ、さまざまな解決策を示しましたが、インタビュアーは納得していませんでした。私は解決策を見つけることに興味があります。あなたの意見を投げてください:
Q:iPodにシャッフルを実装するための効率的なデータ構造を記述してください。すべての曲を再生する必要があります。毎回異なるランダムな順序で、同じ曲を繰り返さないでください。(主にO(n))
1つの解決策は、インタビューの後で考えました。再帰なしでランダム化されたクイックソートを実行できます。ランダムに、1つのピボットO(1)を選択してから、クイックソートO(n)を実行します。これで曲が順番に並べ替えられ、最後まで再生します。それが終わりに達したら、私は再びランダムなピボットを選択し、このプロセスを何度も繰り返します。
よろしく、セトゥー