计数排序

来源:互联网 发布:天庭淘宝店txt下载 编辑:程序博客网 时间:2024/05/09 10:15

线性时间时间复杂度, 但需要一定的空间开销,并且要知道大致范围。没有重复的,可以用bitmap表示

char * coutSort(char *pStr)

{
  assert(pStr!=NULL && *pStr!='\0') ;
  int hash[256]={0};
  char *p=pStr;
  while(*p!='\0')
  {
     hash[ *p++] ++;
  }
  p=pStr;
  for(int i=0;i<256;++i)
  {
     if(hash[i]!=0)
{
   for(int j=0;j<hash[i];++j)
*p++ = (char)i;
}
  }
  return pStr;

}

int main()

{

  char pStr[]="asdfadf234wdSD23";

  coutSort(pStr);

  cout<<pStr<<endl;

  return 0;

}

原创粉丝点击