📄 counting_sort.cpp
字号:
//in barname har tedad adad ra sort mikonad
#include<iostream.h>
#include<conio.h>
void countingsort(int *,int,int *,int);
int main()
{
cout<<"enter length:"<<endl;
int n,max;
cin>>n;
cout<<"enter maximum element="<<endl;
cin>>max;
int *arr_sort=new int[n+1];
int *arr=new int[ n+1];
for(int i=1;i<=n;i++)
{
cout<<"enter arr["<<i<<"]"<<"="<<endl;
cin>>arr[i];
}
countingsort(arr,n+1,arr_sort,max);
for(int j=1;j<=n;j++)
{
cout<<" "<<arr_sort[j];
}
getch();
return 0;
}
//********************************************************************************************************
void countingsort(int *arr,int size,int *arr_sort,int max)
{
int *temp=new int[max+1];
for(int i=0;i<max+1;i++)//dar tamame anasore araye temp 0 ra qarar midahim
temp[i]=0;
for(int j=1;j<size;j++)//bad az in for tedad tekrare anasore araye arr dar araye temp qarar migirad
temp[arr[j]]=temp[arr[j]]+1;
for(int r=1;r<=max;r++)//bad az in for tedad qabl az onsore morede nazar moshakhas mishavad
temp[r]=temp[r]+temp[r-1];
for( j=size-1;j>0;j--)
{
arr_sort[temp[arr[j]]]=arr[j];
temp[arr[j]]=(temp[arr[j]]-1);
}
}
//*********************************************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -