问题描述
看到书上的案例图,觉得是用链表+数组实现,于是一开始参考数据结构老师ppt。但发现实现不了(详见桶排序问题)。
后来想结构直接用二维数组算了。
本来对B[i]数据排序,想用QuickSort,但发现如果是数组B[i][1]至B[i][k]排序,原算法改动较大,遂作罢。
看到书上的案例图,觉得是用链表+数组实现,于是一开始参考数据结构老师ppt。但发现实现不了(详见桶排序问题)。
后来想结构直接用二维数组算了。
本来对B[i]数据排序,想用QuickSort,但发现如果是数组B[i][1]至B[i][k]排序,原算法改动较大,遂作罢。
在用Bucket sort的时候,试了一下用链表数组的结构。
编译通过了,但是不知道为什么next指针用不了。
1 | typedef double ElemType; |
因为引理中提到,
对于n位数,单位数的最大值为k,若稳定排序需要Θ(k+n)时间,则Radix sort需要Θ(d(k+n))时间。
因此一开始想用Counting sort来进行一位的排序。
代码如下:
1 | Array stableSort(Array A, int n, int d){ |