快速排序总结及poj代码
来源:互联网 发布:windows dhcp client 编辑:程序博客网 时间:2024/05/22 00:03
1、快速排序的思想提炼
首先,快速排序利用了分治的思想,总的来说利用了递归的方法;先对数组进行划分,是数组一部分小于主元,一部分大于主元,然后再对两部分分别快速排序;
2、快速排序的时间复杂度分析
最坏情况:O(
平均情况:O(nlogn)
快速排序的平均运行时间更接近于其最好情况,而非最坏情况
3、快速排序实践
poj2388
代码如下:
#include <iostream>using namespace std;void quickSort(int* milk,int head,int tail);int partition(int* milk,int head,int tail);void exchange(int* milk,int i,int j);int main(){ int n; while(cin>>n){ int* milk=new int[n]; for(int i=0;i<n;i++){ cin>>milk[i]; } quickSort(milk,0,n-1); cout<<milk[n/2]<<endl; delete milk; } return 0;}void quickSort(int* milk,int head,int tail){ int mainElement; if(head<tail){ mainElement = partition(milk,head,tail); quickSort(milk,head,mainElement-1); quickSort(milk,mainElement+1,tail); }}int partition(int* milk,int head,int tail){ int referValue=milk[tail]; int small=head-1; for(int goThrough=head;goThrough<tail;goThrough++){ if(milk[goThrough]<referValue){ small++; exchange(milk,small,goThrough); } } exchange(milk,small+1,tail); return small+1;}void exchange(int* milk,int i,int j){ int temp=milk[j]; milk[j]=milk[i]; milk[i]=temp;}
0 0
- 快速排序总结及poj代码
- 快速排序及代码实现
- 快速排序及代码实现
- C语言快速排序算法及代码
- 快速排序(解析及代码实现)
- 快速排序代码及实现(优化)
- 快速排序思想及C语言代码
- 快速排序算法及python代码实现
- 快速排序代码及逻辑思想
- 【分治法】快速排序及C++代码
- 快速排序程序及易错点总结
- 八大排序算法及完整c代码—快速排序
- 排序总结(代码实现):选择排序,插入排序,归并排序,快速排序,堆排序
- 各种排序算法总结及代码
- POJ 2388(快速排序)
- POJ 2388快速排序
- 排序算法-冒泡、插入、归并、希尔、快速、选择--代码总结
- 快速排序中常见中轴选择方法及实现代码
- ubuntu 简易更新 matplotlib
- 支持向量机(Support Vector machines)
- 2015-12-16
- Python 正则表达式的使用(re findall finditer match search)- 千月的python linux 系统管理指南学习笔记(13)
- oracle x$bh 说明
- 快速排序总结及poj代码
- [JS]IE兼容模式下会把后台传来的html或者xml标签变成大写的解决方法
- easyX实现鼠标人物移动(可视化编程)
- VideoView 万能适配
- 远程服务调用之RMI、Hessian、Burlap、Spring的HTTPinvoker
- @RequestBody, @ResponseBody 注解详解
- 设计模式分类
- 学会nodejs-成为全栈工程师--持续更新
- trace32常用命令备忘