用于排序100个或更多整数数的散列函数

时间:2016-04-08 22:03:44

标签: c

我搜索了问题但不满意,所以我想问一个问题。如果我想使用哈希表对100个数字进行排序,那么哈希函数可以帮助我。我通过表对10个数字(通过bucketsort)进行排序,其长度是10个。如果不增加表长度,我怎么还能暗示桶排序呢? X%10不再帮助我了吗?那么我怎么能对我的数字进行排序呢。

1 个答案:

答案 0 :(得分:2)

在这种情况下,HashTable绝对没用 哈希特别是删除订购信息,使其无法排序!

假设A < B
如果您有hash(A)hash(B),则无法对此关系做出任何陈述。

以下任何一种情况都可能属实:

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

所以你不能使用哈希函数进行排序。

HashTables不用于排序!

使用函数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;
}