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

📄 44.cpp

📁 是数据结构中的基数排序算法
💻 CPP
字号:
#include <iostream>
#include <vector>
#include <queue>
#include   <cmath>

using namespace std;

void Jsort(vector<int> &vec,int d)
{
    int i,j;
	int m=1;
	queue <int> q[10];

	for(i=1;i<=d;++i)
	{
		for (j=0;j<vec.size();j++)
		{
			q[ (vec[j]/m)%10].push(vec[j]);
		}
        
        m*=10;
		int k=0;
		for (j=0;j<10;j++)
		{
			while(!q[j].empty())
			{
				vec[k]=q[j].front();
				q[j].pop();
				++k;
			}
		}
	    cout<<"第"<<i<<"次调整后的数组"<<endl;
		for(j=0;j<vec.size();j++)
			cout<<vec[j]<<" ";
		cout<<endl;
	}
}

void main()
{
	vector<int> vec;
	cout<<"请输入要排序的数 用0表示结束"<<endl;
	int js;
	cin>>js;
	while(js!=0)
	{
		vec.push_back(js);
		cin>>js;
	}

    for(int j=0;j<vec.size();j++)
			cout<<vec[j]<<" ";
	cout<<endl;

	int flag=1;
	int d=1;
    while(flag)
	{ 
		flag=0;
		for(int j=0;j<vec.size();j++)
		{   
			if((vec[j]/(int (pow(10.0,d))))!=0)
			{
				flag=1;
				break;
			}
		}
        ++d;
	}

	--d;
	cout<<d<<endl;
	Jsort(vec,d);

}

⌨️ 快捷键说明

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