2 条题解

  • 0

    诏曰

    #include<bits/stdc++.h>
    using namespace std;//4 5 6 1 5 2 3 5
    int nums[100000000],n,m;
    int part(int* p,int l,int r){
    	while(l<r){
    		while(l<r&&p[l]<p[r]) r--;
    		if(l<r) swap(p[l++],p[r]);//换位后左指针向右移一位 
    		while(l<r&&p[l]<p[r]) l++;
    		if(l<r) swap(p[l],p[r--]);//换位后右指针向左移一位
    	}
    	return r; 
    }
    void QuickSort(int* p,int l,int r){
    	int mid;
    	if(l<r){
    		mid=part(p,l,r);
    		QuickSort(p,l,mid-1);
    		QuickSort(p,mid+1,r);
    	}
    }
    int main(){
    	cin>>n; for(int i=1;i<=n;i++) cin>>nums[i];
    	QuickSort(nums,1,n);
    	for(int i=1;i<=n;i++) cout<<nums[i]<<" ";
    	return 0;
    }
    

信息

ID
666
时间
1000ms
内存
256MiB
难度
7
标签
递交数
39
已通过
11
上传者