問題タブ [cycle-sort]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1350 参照

algorithm - サイクルソートの実装の最適化

サイクルソートは、ソートしている順列をサイクルに因数分解できるという考えに基づいたインプレースソートです。各サイクルを1位置回転すると、配列が並べ替えられます。これは簡単にコーディングできるため、配列への書き込み数は、インプレースソートに必要な理論上の最小値になります(これは、書き込み数を最小限に抑えたいフラッシュドライブなどの巨大なデータセットに適しています。デバイス)。

ウィキペディアのコードをインプレースソートに保ち、最適な書き込み数を維持しながら、コードの実行時間を改善する方法はありますか、それとも最高の方法ですか?

これが実装です(からにrange(a, b)行くことに注意してください):ab - 1

0 投票する
2 に答える
6185 参照

algorithm - サイクルソートアルゴリズム

メモリ書き込み回数を最小にするサイクルソートと呼ばれるアルゴリズムがあることを知ったとき、私はインターネットを閲覧していました.しかし、どこにもアルゴリズムを見つけることができません.サイクルが存在するかどうかを検出する方法配列?このアルゴリズムを完全に説明できる人はいますか?

0 投票する
2 に答える
858 参照

java - java:whileループ-中括弧の間のステートメントに入る前にセミコロンを含むステートメント?

ここでstackoverflowに関する別のページを見ていて、サイクルソートの実用的な実装に出くわしましたが、whileループの中括弧の前にセミコロン付きのステートメントがどのように存在するかわかりません。whileループは完全に終了し、セミコロン付きのステートメントが見つかるとそれ以上のアクションを実行しないはずだと思ったのですが、中括弧内のコードがどのように実行されているのでしょうか。一見すると、これはwhileループの反復ごとに「var」がインクリメントされると解釈しますが、その場所から削除して中括弧の中に「var ++」を入れると無限ループになるため、そうではないことはわかっています。ループ。

正確にどの条件で「var」がインクリメントされますか?説明、または同様の構文を説明するリンクのいずれか:

いただければ幸いです。ありがとうございました。以下はCycleSortから取得したコードです

}

0 投票する
1 に答える
100 参照

algorithm - Haskell の CycleSort - トラブル

私は Haskell で CycleSort を作成しようとしています。これは私の課題ですが、誰も Haskell の操作方法を明確にしてくれませんでした。何度も試し、他の言語からコードを「翻訳」しようとしましたが、うまくいきませんでした。 . あちこち探しましたが、何もありませんでした。誰かが私を助けてくれたら、とても感謝します。JavaにはCycleSortのコードがあります。