哈希表排序整数
先贴上代码,再分析思路:
1 int main() 2 { 3 int random[100] = { 0 }; 4 srand(time(NULL)); 5 for (int i = 0; i < 100; i++) { 6 random[i] = rand() % 1000; 7 } 8 9 int hash_sort[1000] = { 0 }; 10 for (int i = 0; i < 100; i++) { 11 hash_sort[random[i]]++; 12 } 13 14 for (int i = 0; i < 1000; i++) { 15 for (int j = 0; j < hash_sort[i]; j++) { 16 printf("%d\n", i); 17 } 18 } 19 system("pause"); 20 return 0; 21 }
(1)随机生成100个数字,这些数字在1000以内(%1000);
(2)hash_sort数组用于排序,数组下标代表所排序的整数;
(3)像是在丢东西,你是‘1’,就把你扔进下标为‘1’的数组里(即是hash_sort[random[i]]++);
(4)打印次数为:hash_sort[i]的值,即说明原先随机生成的有几个该值。
一步步朝前走,总会有收获的,keep quiet. 2020-03-20

浙公网安备 33010602011771号