有关基数排序的问题求解释

有点看不懂这个基数排序,有没有人能帮忙给我解释一下啊?感谢感谢
对A123 F865这种格式进行排序的

void Single(Sqlist* L, char cmp, int len, int index)
{
    int i, x;
    Sqlist T[26];        //容纳数字 0 - 910 个桶 或 字母 A - Z 的 26 个桶
    for (i = 0; i <= len; ++i)
        T[i].length = 0;
    for (i = 0; i < L->length; ++i)
    {
        x = L->data[i].num[index] - cmp;
        T[x].data[++T[x].length] = L->data[i];                  //传值
    }
    int k = 0, j;
    for (i = 0; i <= len; ++i)
        for (j = 1; j <= T[i]
            L->data[k] = T[i].data[j];                     //传值
            k++;
        }

说白了就是定义了26个数组,Sqlist T[26]
然后根据你的数据,根据 x = L->data[i].num[index] - cmp,将数据添加到这26个列表的某一个。这里比如index=0,cmp='A'就是按照第一个字母排序
最后那个循环就是按照顺序将结果复制到L,从而实现了排序