原理

  • 将待排序的元素拆分为k个关键字,然后再对第k个关键字进行稳定排序,再对k-1关键字进行稳定排序,以此类推,完成整个待排序序列的稳定排序
  • 基数排序 - 图1

    性质

  • 稳定性:稳定的

  • 时间复杂度:若每个关键字的值域都不大,使用计数排序的作为内层排序,此时复杂度为基数排序 - 图2

    代码

    1. public void radix_sort(int[] a) {
    2. final int KEY_NUM = 4;
    3. int[][] key = new int[KEY_NUM][a.length];
    4. initKey(key, a);
    5. for (int i = 0; i < key.length; i++) {
    6. counting_sort(a, key, i);
    7. }
    8. }