实现(第 1 部分)
Coddy 基数排序:数据结构与算法系列 课程的第 5 课,共 9 课。
我们将从核心操作开始,逐步构建基数排序。
挑战
中等基数排序的每一趟都是对单个数位进行的稳定计数排序。我们先来实现它。
编写一个名为 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;
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基数排序:数据结构与算法系列中的所有课
自己练习: C 在线编译器