快排被诅咒了?
查看原帖
快排被诅咒了?
1288786
meiweid_quanyiang楼主2025/1/16 09:38

一本通1319

冒泡AC

#include<bits/stdc++.h>
using namespace std;
int n;
double ans;
struct node{
	int number;
	int count;
};
node a[1145];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].count;
		a[i].number=i;
	}

	for(int i=n;i>1;--i){
		for(int j=1;j<i;++j){
			if(a[j].count>a[j+1].count){
				swap(a[j].count,a[j+1].count);
				swap(a[j].number,a[j+1].number);
			}
		}
	} 
	for(int i=1;i<=n;i++){
		cout<<a[i].number<<" ";
		ans+=a[i].count*(n-i);
	}
	printf("\n%.2lf",ans/n);
	return 0;
}

快排错一个点

#include<bits/stdc++.h>
using namespace std;
int n;
struct node{
	int number;
	int count;
}a[1145];
bool cmp(node &a,node &b){
	return a.count<b.count;
}

int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].count;
		a[i].number=i;
	}
	double ans=0;
	sort(a,a+n+1,cmp);
	for(int i=1;i<=n;i++){
		cout<<a[i].number<<" ";
		ans+=a[i].count*(n-i);
	}
	printf("\n%.2lf",ans/n);
}
2025/1/16 09:38
加载中...