C链表实现基数排序 主函数调用
每次都要安利的排序可视化网站:
https://visualgo.net/en/sorting
先上代码,由于基数排序一般使用链表来实现,所以需要提前使用结构体定义,其中便会涉及到指针和数组的相关操作,代码难度相对前面来说更大些:
#include <stdio.h>
#include <stdlib.h>
#define RADIX 10 //基数的数目
typedef struct node
{
int key; //关键字
struct node *next; //指向下一个节点的指针
} Node; //链表节点的结构体
void Arrange(Node *arraynode, Node *group[], int level); //链表节点分组函数
void Radix_Sort(int a[], int n); //基数排序函数
Node *collect(Node *group[]); //对分组的数据进行收集 返回链表的头指针
int resolve(int key, int level); //对关键字进行 划分为主关键字 和次关键字
void printArr(int a[], int length);
int main()
{
int a[RADIX] = {
4, 3, 1, 2, 6, 5, 0, 9, 8, 7};
int length = sizeof(