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