快速排序算法分析
来源:互联网 发布:sshd linux 编辑:程序博客网 时间:2024/04/28 22:08
经常在面试时会有面试官要求直接写出快速排序算法,因为该算法在排序算法中占有非常重要的地位,它排序效率高,达到O(nlogn),最坏的情况也是O(n^2),它的思想为对于一个待排序的序列,首先随机选取一个元素作为枢轴,然后通过元素值的比较,将整个序列分成两部分,前一部分所有元素都小于或等于该枢轴元素值,后一部分均大于或等于枢轴元素值。然后在分成的两个序列里再递归的执行该算法。
源代码如下:
int partition(vector<int>& vec,int low,int high){ int i=low,j=high; int x=vec[low]; while(i<j) { while(i<j && vec[j]>=x) --j; vec[i]=vec[j]; while(i<j && vec[i]<=x) ++i; vec[j]=vec[i]; } vec[i]=x; return j;}//快排void Qsort(vector<int>& vec,int low,int high){if(low<high){ int p=partition(vec,low,high); Qsort(vec,low,p-1); Qsort(vec,p+1,high);}}
0 0
- 快速排序算法分析
- 快速排序算法分析
- 快速排序算法分析
- 算法分析:快速排序
- 快速排序算法分析
- 快速排序算法分析
- 快速排序算法分析
- 算法分析-快速排序
- 算法分析之快速排序
- 快速排序(递归算法)分析
- 快速排序算法sort分析
- 快速排序算法sort分析
- 算法分析(一): 快速排序
- 快速排序算法 随机化分析
- 算法-排序-快速排序(QuickSort)分析
- 快速排序 与 随机快速排序 算法分析
- 快速排序算法的深入分析
- C语言快速排序算法代码分析
- Spring——IoC
- C中内存泄漏小悟
- scu - 3254 - Rain and Fgj(最小点权割)
- cuda julia & ripple
- 实验室第六周
- 快速排序算法分析
- 求一元二次方程的根
- 面向对象的三个基本特征(简)
- SecureCRT 基本使用
- 美团面试题:寻找数组置尾操作的最小值
- 权限表设计之代码解析
- Pascal's Triangle - LeetCode
- 多进程访问文件的同步
- 《PHP从入门到精通》之基础学习篇,php中=>的用法,是干什么的?