基于16进制的整型基数排序
基数排序是一个经典的非比较排序算法,其基本思路为将待排序列分配至各个桶,再重新组合,达到排序的目的。在这里提出一种基于16进制的分配法,每一轮有0x0~0xf
共16个桶,重复分配8次,可以达到整型排序的目的。而负数在计算机内部使用其补码表示,因此在最后一趟收集的过程中,先收集0x8~0xf
桶,再收集0x0~0x7
桶,即可顺利的完成排序。
代码示例
以下是使用C++编写的基于16进制的整型基数排序代码示例,使用位运算符提高运算速度。
1 |
void radix_sort_merge(vector<int> &data, vector<vector<int>> &buckets, int &index, int start, int end) |