⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zz.cpp

📁 通过10个固定的数字,简单的实现基本的基数排序
💻 CPP
字号:
#include <stdio.h>
  int   digitk(int no, int kth)   
  {   
          int   i,j,m;   
          m=10;   
          if(kth==0)   //   计算个位数 
           i=no%m;   
	    	  else   
         {   
                 // 计算较高位数所需的m值
                for(j=1;j<kth;j++)   
                 m=m*10;      
			i=((int)(no/m))%10;   
        }   
          return   i;   
  }  
  
 void   base_sort(int *A)   
  {   
  int   i,j,k,index,no;   
  int   nocount[10]={0,0,0,0,0,0,0,0,0,0};     
  int   noarray[10][10]; //10行10列矩阵 
  for   (i=0;i<=2;i++)   
  {   
  for(j=0;j<=9;j++)
  {  nocount[j]=0; } 
  for(j=0;j<=9;j++)   
  { //  取出数字  
  no=digitk(A[j],i);  
  noarray[nocount[no]][no]=A[j];//存入矩阵中
  nocount[no]=nocount[no]+1;   //该列的行增1
  }   
  index=0;   
  for(j=0;j<=9;j++)   //取出各数字阵列的资料回A阵列中    
  {   
  for(k=0;k<nocount[j];k++)   
  {   A[index]=noarray[k][j];  
      printf("%-7d",A[index]); 
      index++;  
	   
  } 
    
  } 
   printf("\n");   
   printf("\n");   
  }   
  }   
void   main()
  {   
    int i;
   int A[10]={288,371,260,531,287,235,56,299,18,23};   
    printf("初始值为:\n");
    for(i=0;i<=9;i++)   
     printf("%-5d",A[i]);
        printf("\n\n三趟分配收集结果分别为:\n");
    base_sort(A);   
       printf("基数排序最终收集结果为:\n"); 
    for(i=0;i<=9;i++)  
	  printf("%-5d",A[i]);
        printf("\n");
   
  }   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -