#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>#include <algorithm>#include <time.h>using namespace std;const int HASH_SIZE = 1000000;const int HASH_KEY = 17;int next[HASH_KEY][HASH_SIZE];int hash[HASH_SIZE];int origin_nums[HASH_SIZE];int now = 1;int comp(const void *a,const void *b){ return (*(int*) a - *(int*) b );}bool addIntoHash(const int a){ int ind = a % HASH_KEY; int i = 0; while( next[ind][i] ) { if ( hash[ next[ind][i] ] == a ) { return false; } i = next[ind][i]; } next[ind][i] = now; hash[now] = a; now++; return true;}int main(){ srand(time(NULL)); for(int i = 0 ; i < HASH_SIZE ; i++) { origin_nums[i] = rand() % 10000; } for(int i = 0 ; i < HASH_SIZE ; i++) { // addIntoHash(5); addIntoHash(origin_nums[i]); } printf("The hash table is \n"); for(int i = 1 ; i < now ; i++) { printf("%d ",hash[i]); if ( i % 10 == 0 ) printf("\n"); } printf("\n"); qsort(hash,now,sizeof(int),comp); printf("After sorting\n"); for(int i = 1 ; i < now ; i++) { printf("%d ",hash[i]); if ( i % 10 == 0 ) printf("\n"); } return 0;}