Hash表的一个小程序

    技术2022-07-02  76

    http://192.168.100.16/showproblem.php?pid=1425

     

        散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

     

    #include <stdio.h> #include <string.h> int a[1000001]; int main() { int n, m; int data; int count; int flag = 0; //freopen("input.txt", "r", stdin); while (scanf("%d%d", &n, &m) != EOF) { count = 0; memset(a, 0, sizeof(a)); for (int i = 0; i < n; i++) { scanf("%d", &data); a[data+500000] = 1; } flag = 0; for (int i = 1000000; i >= 0; i--) { if(a[i] != 0) { if(flag == 0) { printf("%d", i - 500000); flag = 1; } else printf(" %d", i - 500000); count++; } if (count == m) break; } printf("/n"); } //fclose(stdin); return 0; } 


    最新回复(0)