2016-04-08 12 views
-9

問題を検索しましたが、満足できませんでしたので、質問したいと思います。もし私が100の数値をハッシュテーブルを使ってソートしたいのであれば、どのハッシュ関数が私を助けてくれるかもしれません。テーブルを通って10の数字をソートしました(長さは10です)。 X%10はもう私を助けませんか?それでは、どうすれば私の番号を並べ替えることができますか100個以上の整数をソートするためのハッシュ関数

+0

100個の数字を並べ替えることができます。バブルソートを使用してください。 –

+1

ハッシュ関数はどのようにソートを実行するのに役立ちますか? –

+0

私はここにバブルソートしたくない..... Ed heal?私はあなたのアドバイスをよく知っています。 – 2013

答えて

2

このシナリオでは、HashTableはまったく役に立たない。
ハッシュを具体的には、注文情報をから削除して、ソートすることは不可能です!

A < Bとします。
hash(A)hash(B)がある場合、その関係についてANYステートメントを作成することはできません。

次のいずれかが、おそらく真である:

  • hash(A) < hash(B)
  • hash(A) == hash(B)
  • hash(A) > hash(B)

ですから、ソートするハッシュ関数を使用することはできません。

ハッシュテーブルはソート用ではありません。

機能QSortを使用してください。

int LessThan(const void* pA, const void* pB) { return *(int*)pA - *(int*)pB; } 

int main() 
{ 
    int num[100]; 
    // Fill in the array 

    qsort(num, 100, sizeof(int), LessThan); 

    // Your array is now sorted. 
    return 0; 
} 
+0

私はqsort @abelenkyをしたくありません – 2013

+0

浮動小数点数をハッシュテーブルで並べ替えることはできますか?あなたは親切に提案を追加してください。 – 2013

+0

「Cormenによるアルゴリズムの紹介」の本で、浮動小数点数のハッシュ関数の働きについての話題を見つけました。それが私がさらに推測した理由です。 – 2013

関連する問題