【排序】快速排序(1~10)
现在手写排序的同学们越来越少了,但是在一些题目中,利用手写的排序可能会让题目更加的简单。下面我会上传一些排序模板。
快速排序
基本的思想我就不细说了,推荐大家去百度一下(不懂的话可以问我),下面附上本蒟蒻的代码。
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; int a[101],n; void quicksort(int x,int y) { int i=x,j=y; int k=a[x]; if(i>=j) return; while(i<j) { while(i<j&&a[j]>k) j--; if(i<j) { a[i]=a[j]; i++; } while(i<j&&a[i]<=k) i++; if(i<j) { a[j]=a[i]; j--; } } a[i]=k; quicksort(x,i-1); quicksort(i+1,y); } int main() { for (int i=1;i<=10;i++) cin>>a[i]; quicksort(1,10); for (int i=1;i<=10;i++) cout<<a[i]<<" "; return 0; }
作者:暄妍
我的博客:http://www.cnblogs.com/zbyrainbow/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。