全部评论 2

  • 我这个对

    //快速排序 
    //第一行输入一个n(1<=n<=1000),随后输入n个数。
    //输出n个数从小到大排序后的数据。 
    #include <bits/stdc++.h>
    using namespace std;
    int n;
    int a[1010],b[1010];
    int pos(int l,int r){
    	int k =a[l];
    	while(l < r){
    		while(l < r && a[r] >= k){
    			r--;
    		}
    		a[l] = a[r];
    		while(l < r && a[l] <= k){
    			l++;
    		}
    		a[r] = a[l];
    	}
    	a[l] = k;
    	return l;
    }
    void QuickSort(int l,int r){//l = 开始下标,r = 结束下标 
    	if(l >= r) return;
    	int mid = pos(l,r);
    	QuickSort(l,mid-1);
    	QuickSort(mid+1,r);
    }
    int main(){
    	cin >> n;
    	for(int i=1;i <= n;i++){
    		cin >> a[i];
    	} 
    	QuickSort(1 , n);
    	for(int i=1;i <= n;i++){
    		cout << a[i] << " ";
    	} 
    	return 0;
    } 
    

    5小时前 来自 浙江

    0
  • //第一个数输入一个n(1<=n<=1000),随后输入n个数。
    //入n个数从小到大排序后的数据
    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int a[1010];
    int pos(int l,int r){
    int k=a[l];
    while(l<r){
    while(l<r&&a[r]>= k) r--;
    a[l] =a[r];
    while(l<r&&a[l]<= k) l++;
    a[r] =a[l];
    }
    a[l] =k;
    return 1;
    }
    void QuickSort(int l,int r){
    if(l>=r)return;
    int mid=pos(l,r);
    QuickSort(l,mid-1);
    QuickSort(mid+1,r);
    }
    int main(){
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    QuickSort(1,n);
    for(int i=1;i<=n;i++)cout<<a[i]<<" ";
    return 0;
    }
    
    
    

    5小时前 来自 浙江

    0

热门讨论