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

📄 计数排序 0(n+m).txt

📁 NUAA ACM OJ源码
💻 TXT
字号:
#include <iostream>
#include <iomanip>
#include <stdio.h>
using namespace std;

//计数排序 
//时间复杂度为n+m(m<n,n为要排序的数字个数,m为这些数字中不同数字的个数
/*
输入:
10 8 5
7 5 6 8 8 5 6 7 7 6

输出:
5 5 6 6 6 7 7 7 8 8
*/
int D[10];

void init(int num)
{
	int i;
	for(i=0;i<num;i++) D[i]=0;
}

int main()
{
	int num,a[11],high,low,b[11],i;
	scanf("%d%d%d",&num,&high,&low);
	init(num);
	for(i=0;i<num;i++)
	{
		scanf("%d",&a[i]);
		D[a[i]-low]++;
	}
	for(i=1;i<=high-low;i++)
		D[i]=D[i-1]+D[i];
	for(i=num-1;i>=0;i--)
	{
		b[--D[a[i]-low]]=a[i];
	}
	for(i=0;i<num;i++)
		printf("%d ",b[i]);
	return 0;
}

⌨️ 快捷键说明

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