This commit is contained in:
krahets
2024-11-25 19:12:22 +08:00
parent ff8738ab95
commit 97733f1a7d
13 changed files with 141 additions and 215 deletions

View File

@@ -825,6 +825,7 @@ $$
// 使用结果数组 res 覆盖原数组 nums
memcpy(nums, res, size * sizeof(int));
// 5. 释放内存
free(res);
free(counter);
}
```

View File

@@ -574,6 +574,7 @@ $$
void countingSortDigit(int nums[], int size, int exp) {
// 十进制的位范围为 0~9 ,因此需要长度为 10 的桶数组
int *counter = (int *)malloc((sizeof(int) * 10));
memset(counter, 0, sizeof(int) * 10); // 初始化为 0 以支持后续内存释放
// 统计 0~9 各数字的出现次数
for (int i = 0; i < size; i++) {
// 获取 nums[i] 第 k 位,记为 d
@@ -597,13 +598,16 @@ $$
for (int i = 0; i < size; i++) {
nums[i] = res[i];
}
// 释放内存
free(res);
free(counter);
}
/* 基数排序 */
void radixSort(int nums[], int size) {
// 获取数组的最大元素,用于判断最大位数
int max = INT32_MIN;
for (size_t i = 0; i < size - 1; i++) {
for (int i = 0; i < size; i++) {
if (nums[i] > max) {
max = nums[i];
}