1 条题解

  • 1
    @ 2023-3-11 10:51:36

    快速排序

    #include <bits/stdc++.h>
    using namespace std;
    int n;
    int a[1000000+5];
    void quickly_sort(int l, int r)
    {
    	if(l>=r)//排序完成,停止 
    		return;
    	int mid = (l+r)/2;
    	swap(a[l],a[mid]);
    	int key = a[l];
    	int L = l, R = r;
    	while(L<R)
    	{	
    		while(R>L&&a[R]>=key)
    			R--;
    		a[L]=a[R];
    		while(L<R&&a[L]<=key)
    			L++;
    		a[R]=a[L];
    	}
    	a[L] = key;
    	quickly_sort(l,L-1);
    	quickly_sort(R+1,r);
    }
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)
        	cin>>a[i];
        quickly_sort(1,n);
        for(int i=1;i<=n;i++)
    		cout<<a[i]<<" ";
        return 0;
    }
    

    信息

    ID
    1083
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    134
    已通过
    43
    上传者