关于排序的时间、空间复杂度
查看原帖
关于排序的时间、空间复杂度
482610
Mortidesperatslav楼主2022/8/12 19:29

如题。我对桶排进行了研究,并且改成了两种形式,经测试,他们都有排序的效果:

形式1(经典桶排优化):

#include<bits/stdc++.h>
using namespace std;
int k,b[10005],mx=-65535,n;
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>k;
		if(k>mx)mx=k;
		b[k]++;
	}
	for(int i=0;i<=mx;i++){
		while(b[i]){
			cout<<i<<' ';
			b[i]--;
		}
	}
}

形式2(小数组优化):

#include<bits/stdc++.h>
using namespace std;
int a[10005],mx=-65535,n;
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
		if(a[i]>mx)mx=a[i];
	}
	for(int j=0;j<=mx;j++)
    for(int i=0;i<n;i++)
    if(a[i]==j)cout<<a[i]<<' '; 
}

求教:这两种排序哪种更好用

2022/8/12 19:29
加载中...