哈希表排序整数

先贴上代码,再分析思路:

 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

posted @ 2020-03-20 16:49  一二三的三二一  阅读(301)  评论(0)    收藏  举报