基于c语言数组的下位优先法分配排序(LSD )代码如下。
# include stdio.h # include math.h # definen 10000 void LSD (ints [ ],int n,int digits_max ) /按自定义下位优先级法分配排序函数,s为数组idigits_max; I ) { int j,k,t,l; for(j=1; jn; j ) )/)每一位直接插入排序for(k=j-1; k=0; k--}{if(s[j]/) int (pow ) 10,I ) }=) s[k]/(int ) pow (10,I ) ) /按位进行比较break; (if ) j!=k 1 ) { t=s[j]; for(L=J-1; l=k 1; L--}{S[L1]=S[L]; } s[k 1]=t; } } }}int main () { int s[N]; int n,I,digits_max; 请输入printf ('数组的长度。 n ); scanf('%d ',n ); //扫描数组的长度请输入printf ('以及等待数组。 n ); for(I=0; in; I ) scanf('%d ',s[i]; //数组扫描printf ('请输入数组元素的最大位数。 n ); scanf('%d ',digits_max ); //扫描数组元素的最大位数LSD(s,n,digits_max ); //用自定义的下级优先方法对数组分配排序函数进行排序的printf ()排序结果如下。 n ); for(I=0; in; I ) printf('%d ',s[i]; //输出排序结果return 0