今天看leetcode,看到一个碉堡的排序,把整型的每一位都当做基数排序的一个基数进行排序。
void sort(vector<int> &nums, int s, int e, int d) {
if (d < 0 || s == e)
return;
int i = s;
for (int j = s; j < e; j++)
if (nums[j] & (1 << d))
swap(nums[i++], nums[j]);
sort(nums, s, i, d-1);
sort(nums, i, e, d-1);
}
调用的时候
sort(nums, 0, nums.end(), 32);