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

📄 cpp1.cpp

📁 常见算法
💻 CPP
字号:
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
#define N 10

class number                                    //此对象是一个三位数,可以通过对象的函数
{                                               //分别取出他们的个位数、十位数、百位数   
public:
	number(int numbe){numb=numbe;}
	~number(){};

	int getThenumber(){return numb;}
	void setThenumber(int num){numb=num;}
	int getThelast();
	int getThesecond();
	int getThefirst();

private:
	int numb;
};
number::getThelast()
{
	return numb%10;
}
number::getThesecond()
{
	return (int(numb/10))%10;
}
number::getThefirst()
{
    return (int(numb/100))%10;
}
void countings_sort1(number x[],number y[],int max,int choice)
{
	int i,length;
	int counter[N];
	length=N;
	for(i=0;i<length;i++)
	{
		counter[i]=0;
	}
	switch(choice)
	{case 1:                             //根据最低位进行排序
	{
		
		
		for(i=0;i<length;i++)
		{
			counter[x[i].getThelast()]++;      //统计每一相等数的个数
		}
		for(i=1;i<=max;i++)
		{
			counter[i]+=counter[i-1];                      //统计小于等于i的个数
		}
		for(i=length-1;i>=0;i--)
		{
			y[--counter[x[i].getThelast()]]=x[i];                          //数据放入之前序号减一,也即计数器减一。
		}
		
		break;
	}
    case 2:                            //根据第二位数排序
		{
			for(i=0;i<length;i++)
			{
				counter[x[i].getThesecond()]++;      //统计每一相等数的个数
			}
			for(i=1;i<=max;i++)
			{
				counter[i]+=counter[i-1];                      //统计小于等于i的个数
			}
			for(i=length-1;i>=0;i--)
			{
				y[--counter[x[i].getThesecond()]]=x[i];                          //数据放入之前序号减一,也即计数器减一。
			}
			
		break;
		}
	case 3:                              //根据第一位数排序
		{
			for(i=0;i<length;i++)
			{
				counter[x[i].getThefirst()]++;      //统计每一相等数的个数
			}
			for(i=1;i<=max;i++)
			{
				counter[i]+=counter[i-1];                      //统计小于等于i的个数
			}
			for(i=length-1;i>=0;i--)
			{
				y[--counter[x[i].getThefirst()]]=x[i];                          //数据放入之前序号减一,也即计数器减一。
			}
			
			break;
		}    
	}
		
}

main()
{
	int i;
    number a[10]={213,432,345,342,432,542,652,257,352,43};
	number output1[10]={0,0,0,0,0,0,0,0,0,0};
	number output2[10]={0,0,0,0,0,0,0,0,0,0};
	number output3[10]={0,0,0,0,0,0,0,0,0,0};
	
	countings_sort1(a,output1,9,1);
	for (i=0;i<10;i++)
	{
		cout<<output1[i].getThenumber()<<"  ";
	}
	cout<<endl;
	countings_sort1(output1,output2,9,2);
	for (i=0;i<10;i++)
	{
		cout<<output2[i].getThenumber()<<"  ";
	}
	cout<<endl;
	countings_sort1(output2,output3,9,3);
	for (i=0;i<10;i++)
	{
		cout<<output3[i].getThenumber()<<"  ";
    }
	cout<<endl;
	return 0;

}

⌨️ 快捷键说明

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