C言語なら俺に聞け(入門篇) Part 54at TECH
C言語なら俺に聞け(入門篇) Part 54 - 暇つぶし2ch470:デフォルトの名無しさん
09/10/17 18:39:53
基数ソートの勉強をしています。

16ビット長の値(unsigned short)を4ビットずつ分割して、その分布を調べて
ソートする、というアルゴリズムらしいのですが、ちょっとわからない点があります。

2^4 = 16 ですから、分布を数えるために使う配列は int count[16] と宣言しました。
16ビット長の値を4ビットずつ分割して(分割された値を A とします)、その分布を調べるわけですが、
教科書にあるコードは

count[A & 0x0f]++;

となっています。
ここで、A & 0x0f するのはどうしてでしょうか?
A は4ビット長なわけですから、大きさ16の配列 count に収まるはずです。

なぜ、わざわざ 0x0f との論理積を求めるのか謎です。
よろしくお願いします。



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch