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

📄 radix.bak

📁 数据结构课程程序
💻 BAK
字号:
//Radix Sort

#include <iostream.h>
#include <conio.h>
#define MAX 10

class radixsort{
	int arr[MAX],n;
	public:
	void getdata();
	void showdata();
	void sortLogic();
};

void radixsort :: getdata(){
	cout<<"How many elements you require : ";
	cin>>n;
	for(int i=0;i<n;i++)
		cin>>arr[i];
}

void radixsort :: showdata(){
	cout<<"\n--Display--\n";
	for(int i=0;i<n;i++)
		cout<<arr[i]<<"   ";
}

void radixsort :: sortLogic(){
	//for base 10
	int temp;
	int bucket[10][20], buck_count[10], b[10];
	int i,j,k,r,no_of_passes=0,divisor=1,largest,pass_no;

	largest=arr[0];

	for(i=1;i<n;i++)  //Find the largest Number
	{
		if(arr[i] > largest)
			largest=arr[i];
	}

	while(largest > 0)  //Find number of digits in largest number
	{
		no_of_passes++;
		largest /= 10;
	}

	for(pass_no=0; pass_no < no_of_passes; pass_no++){

		for(k=0; k<10; k++)
			buck_count[k]=0; //Initialize bucket count

		for(i=0;i<n;i++){
			r=(arr[i]/divisor) % 10;
			bucket[r][buck_count[r]++]=arr[i];
		}
		i=0; //collect elements from bucket

		for(k=0; k<10; k++){
			for(j=0; j<buck_count[k]; j++)
				arr[i++] = bucket[k][j];
		}

		divisor *= 10;
	}
}

void main(){
	clrscr();
	cout<<"\n*****Radix Sort*****\n";
	radixsort obj;
	obj.getdata();
	obj.sortLogic();
	obj.showdata();
	getch();
}

⌨️ 快捷键说明

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