C语言展示哈希排序算法
时间: 2023-02-21 15:25:42 浏览: 104
哈希排序算法是一种在计算机科学中常用的排序方法。它通过使用哈希函数,将每个元素映射到一个数字,然后对这些数字进行排序。
以下是在C语言中如何实现哈希排序算法的代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
int hash_key(int value) {
return value % MAX_SIZE;
}
void hash_sort(int arr[], int n) {
int i, j, k, key, hash_table[MAX_SIZE];
// 初始化哈希表
for (i = 0; i < MAX_SIZE; i++) {
hash_table[i] = -1;
}
// 将数组中的每个元素映射到哈希表中
for (i = 0; i < n; i++) {
key = hash_key(arr[i]);
while (hash_table[key] != -1) {
key = (key + 1) % MAX_SIZE;
}
hash_table[key] = arr[i];
}
// 输出哈希表中的元素
for (i = 0, j = 0; i < MAX_SIZE; i++) {
if (hash_table[i] != -1) {
arr[j++] = hash_table[i];
}
}
}
int main() {
int arr[] = {22, 34, 56, 12, 67, 43, 56, 89};
int n = sizeof(arr) / sizeof(arr[0]);
hash_sort(arr, n);
printf("排序后的数组为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这段代码使用了一个哈希函数 `hash_key` 将数组中的每个元素映射到哈希表中,然后再对哈希表中的元素按顺序输出,得到最终的排序结果。