barrel.c

来自「排序算法的实现」· C语言 代码 · 共 42 行

C
42
字号
long  SIZE=100000;
#include<stdlib.h>
#include<stdio.h>
#include "d:\p1\barrel.h"


void barrelway(float *p,long n)
{ 
  long i;
  long j;
  long d;
  int id;
  barr bar[11];
  initbar(bar,11);
  for(i=0;i<n;i++)
  { id=(int)(10*p[i]);
    j=bar[id].count++;
    bar[id].key[j]=p[i];
  }
  for(i=0;i<11;i++)
  {   if(bar[i].count!=0)
  	{ quicksort(bar[i].key,0,bar[i].count-1);}
  }
  for(i=0,d=0;i<11;i++)
  {  long k=0;
     while(bar[i].count&&k<bar[i].count&&d<n)
     { p[d++]=bar[i].key[k++];
     }
  }
}

void initbar(barr *bar,int n)
{ int i;
 for(i=0;i<n;i++)
 {  bar[i].key=calloc(SIZE,sizeof(float));
    bar[i].count=0;
 }
  return;
}
  
  

⌨️ 快捷键说明

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