zoukankan      html  css  js  c++  java
  • P1923 【深基9.例4】求第 k 小的数&&P1177 【模板】快速排序

    First
    Second


    快速排序还是很重要的

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstdio>
    using namespace std;
    int zn[5000001];
    int n,Aimee;
    void qs(int l,int r){
    	int ll=l;int rr=r;int mid=zn[(l+r)/2];
    	do{
    		while(zn[rr]>mid){
    			rr--;
    		}
    		while(zn[ll]<mid){
    			ll++;
    		}
    		if(ll<=rr){
    			swap(zn[ll],zn[rr]);
    			ll++;
    			rr--;
    		}
    	}while(ll<=rr);
    	if(l<rr) qs(l,rr);
    	 if(r>ll)
    	qs(ll,r);
    }
    int main(){
    	scanf("%d",&n);
    	for(int i=1;i<=n;++i){
    		scanf("%d",&zn[i]);
    	}
    	qs(1,n); 
    	for(int i=1;i<=n;++i){
    		cout<<zn[i]<<" ";
    	}
    	return 0;
    }
    
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstdio>
    using namespace std;
    int zn[5000001];
    int n,Aimee;
    void qs(int l,int r,int aim){
    	int ll=l;int rr=r;int mid=zn[(l+r)/2];
    	do{
    		while(zn[rr]>mid){
    			rr--;
    		}
    		while(zn[ll]<mid){
    			ll++;
    		}
    		if(ll<=rr){
    			swap(zn[ll],zn[rr]);
    			ll++;
    			rr--;
    		}
    	}while(ll<=rr);
    	if(aim<=rr) qs(l,rr,aim);
    	else if(aim>=ll)
    		qs(ll,r,aim);
    	else{
    		cout<<zn[rr+1];
    		exit(0);
    	}
    }
    int main(){
    	scanf("%d%d",&n,&Aimee);
    	for(int i=1;i<=n;++i){
    		scanf("%d",&zn[i]);
    	}
    	qs(1,n,Aimee+1); 
    	return 0;
    }
    
  • 相关阅读:
    第二次站立会议4
    第二次站立会议3
    建议总结
    对搜狗输入法的个人评价
    第二期站立会议10
    典型用户和用户场景描述
    第二期站立会议9
    第二期站立会议8
    第二期站立会议7
    第二期站立会议6
  • 原文地址:https://www.cnblogs.com/For-Miku/p/13916424.html
Copyright © 2011-2022 走看看