Menu
CoddyTech

实现(第 1 部分)

Coddy 基数排序:数据结构与算法系列 课程的第 5 课,共 9 课。

我们将从核心操作开始,逐步构建基数排序。

challenge icon

挑战

中等

基数排序的每一趟都是对单个数位进行的稳定计数排序。我们先来实现它。

编写一个名为 countingSortByDigit 的函数,它接收一个由非负整数构成的数组 arr 和一个位值 exp(个位为 1,十位为 10,百位为 100,……),并返回一个按数位 (x / exp) % 10 排序的新数组。排序必须是稳定的:数位相同的元素保持原有顺序。

例如,countingSortByDigit([170, 45, 75, 90, 2, 802, 24, 66], 1) 会返回 [170, 90, 2, 802, 24, 45, 75, 66](按个位排序)。

亲手试试

#include <stdlib.h>

int* countingSortByDigit(int* arr, int arr_size, int exp, int* returnSize) {
    // 在这里编写代码
    *returnSize = arr_size;
    return arr;
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基数排序:数据结构与算法系列中的所有课

自己练习: C 在线编译器