怎样加速啊
查看原帖
怎样加速啊
508257
kyries楼主2022/7/30 09:16
用stl sort和快排都只能过一半的点……怎样优化啊大佬们
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;

const int N = 1e5+10;
int a[N];
int w,n,cnt;

void quick_sort(int a[], int l, int r)
{
	if(l >= r) return;
	
	int i = l - 1, j = r + 1, mid = a[l + r >> 1];
	while(i < j)
	{
		do i++; while(a[i] > mid);
		do j--; while(a[j] < mid);
		
		if(i < j) swap(a[i], a[j]); 
	}
	
	quick_sort(a, l, j);
	quick_sort(a,j+1,r);
}

int main()
{
	cin>>n>>w;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		quick_sort(a, 1, i);
		cnt = max(1, int(floor(i * w / 100)));
		cout<<a[cnt]<<" ";
	}
	cout<<endl;
	
	return 0;
}
2022/7/30 09:16
加载中...