简单的用数组实现的基数排序

#include<stdio.h>
#include<stdlib.h>
struct tong{
	int cunchu[10];
	int youbiao;
};
void jisuh(int *head,int max){
	int i=0,k,j,zhong,jian,b10=1,m;
	struct tong shuzu[10];


	for(m=0;m<3;m++){//3趟排序 
	    j=0;b10*=10;
	    	for(i=0;i<10;i++)
	             {
	             	shuzu[i].youbiao=0;
				 }//初始化 
        for(j=0;j<max;j++)//每趟的处理 ,放进去 
          {
          	zhong=(head[j]%b10-head[j]%(b10/10) )/(b10/10);
          	shuzu[zhong].cunchu[shuzu[zhong].youbiao]=head[j];
          	shuzu[zhong].youbiao++;
          	
		  }
		  k=0;
	   for(i=0;i<10;i++)
	      {
	      	for(j=0;j<shuzu[i].youbiao;j++)
	      	{
	      		head[k]=shuzu[i].cunchu[j];
	      		k++;
			  }
		  }
		  
}} 
int main(void){
	int a[]={9,2,43,245,134,344,32};
	jisuh(a,7);
	int i;
	for(i=0;i<7;i++)
	 {
	 	printf("%d ",a[i]);
	 }
}

 

posted @ 2016-04-09 11:43  xhyxhy  阅读(283)  评论(0编辑  收藏  举报