社区讨论

60分超时求掉

P1177【模板】排序参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mlhzt0qm
此快照首次捕获于
2026/02/11 20:15
上周
此快照最后确认于
2026/02/11 21:00
上周
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int parttion(vector<int>& arr,int low,int high){
	int mid=low+(high-low)/2;
	swap(arr[mid],arr[high]);
	int point=arr[high];
	int i=low-1;
	for(int j=low;j<high;j++){
		if(arr[j]<=point){
			i++;
			swap(arr[i],arr[j]);
		}
	}
	swap(arr[i+1],arr[high]);
	return i+1;
}
void qs(vector<int>& arr,int low,int high){
	if(low<high){
		int pi=parttion(arr,low,high);
		qs(arr,low,pi-1);
		qs(arr,pi+1,high);

	}
}
void print(vector<int>& arr){
	for(int i=0;i<arr.size();i++)
			cout<<arr[i]<<' ';
			cout<<endl;
			return ;
}
int main(){

   int n;
   cin>>n;
   vector<int> arr;
   for(int i=0;i<n;i++){
   	int m;
   	cin>>m;
   	arr.push_back(m);
   }
   qs(arr,0,arr.size()-1);
   print(arr);
   
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...