zoukankan      html  css  js  c++  java
  • 快速排序模板

    快排是一种不稳定的排序算法,但其平均时间复杂度是(O(nlog_2n)),最坏情况为(O(n^2)),所以该排序方法被认为是目前最好的一种内部排序方法。
    话说(sort)不香吗

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    inline void read(int &x){
    	int f=1;
    	char ch=getchar();
    	x=0;
    	while(ch<'0'||ch>'9'){
    		if(ch=='-') f=-1;
    		ch=getchar();
    	}
    	while(ch>='0'&&ch<='9'){
    		x=x*10+ch-'0';
    		ch=getchar();
    	}
    	x*=f;
    }
    int n;
    int a[100001];
    inline void quick_sort(int l,int r){
    	int i=l,j=r;
    	int mid=a[(l+r)/2];	//取中间数为基准数 
    	do{
    		while(a[i]<mid) i++;	//找左半部分比mid小的数 
    		while(a[j]>mid) j--;	//找右半部分比mid大的数 
    		if(i<=j){	//如果有一组不符合要求 
    			swap(a[i],a[j]);	//交换 
    			i++,j--;
    		}
    	}while(i<=j);	//"=" 
    	if(l<j) quick_sort(l,j);	//搜索左半部分 
    	if(i<r) quick_sort(i,r);	//搜索右半部分 
    }
    int main(){
    	read(n);
    	for(int i=1;i<=n;i++) read(a[i]);
    	quick_sort(1,n);
    	for(int i=1;i<=n;i++) printf("%d ",a[i]);
    	return 0;
    }
    
  • 相关阅读:
    SimpleDateFormat
    上传带进度条
    cookie和session
    poi导出数据
    commons-fileupload上传文件
    java异常处理
    常用的数据库MySql数据库语句总结
    流的文件操作
    Java输入输出流总结(转载)
    集合总结
  • 原文地址:https://www.cnblogs.com/-pwl/p/13719933.html
Copyright © 2011-2022 走看看