您的位置:首页 > 编程语言 > C语言/C++

计数排序

2013-06-24 16:12 169 查看
#include<iostream>
using namespace std;
void countfac(int a[],int count[],int newarr[],int len)
{
int i;
int j;
for(i=0;i<len;++i)
count[i]=0;
for(i=0;i<len;++i)
{
for(j=i+1;j<len;++j)
if(a[i]>a[j])
{
count[i]++;
}
else
count[j]++;
}
//注意此处的赋值
for(i=0;i<len;++i)
newarr[count[i]]=a[i];

}
void countfac2(int a[],int count[],int newarr[],int len)
{
int i;
int j;
for(i=0;i<len;++i)
count[i]=0;
for(i=0;i<len;++i)
{
for(j=i+1;j<len;++j)
if(a[i]>a[j])
{
count[i]++;
}
else
count[j]++;
}
//注意此处的赋值
for(i=0;i<len;++i)
newarr[count[i]]=a[i];

}
int main()
{
int i;
int a[]={3,2,4,5,64,78,90,43};
int len=((sizeof(a))/(sizeof(int)));
int *count;
int *newarr;
count=(int *)malloc(sizeof(int)*len);
newarr=(int *)malloc(sizeof(int)*len);
countfac(a,count,newarr,len);
for(i=0;i<len;++i)
cout<<newarr[i]<<endl;
free(count);
free(newarr);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息