排序 快速排序
Posted uncklesam7
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序 快速排序相关的知识,希望对你有一定的参考价值。
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> using namespace std; int n,a[101]; void qs(int l,int r){ int i,j,p,mid; i=l;j=r;mid=a[(l+r)/2]; do{ while(a[i]<mid) i++; while(a[j]>mid) j--; if(i<=j){ p=a[i]; a[i]=a[j]; a[j]=p; i++; j--; } }while(i<=j); if(j>l) qs(l,j); if(i<r) qs(i,r); } int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; qs(1,n); for(int i=1;i<=n;i++) cout<<" "<<a[i]; return 0; }
快速排序就是进行多次按照一个支点(一般选择中间位置的数字)分成两组进行排序,将小于该支点的放到左边,大于支点的放入右边这个行为,直到排好所有元素。
快排是不稳定的排序,时间复杂度一般认为是nlog2n,是最常用的内部排序程序。
以上是关于排序 快速排序的主要内容,如果未能解决你的问题,请参考以下文章
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段