快速排序
2015-09-12 18:49
176 查看
快速排序之所以比较快,是因为相比冒泡排序,每次交换是跳跃式的。每次排序的时候
设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全
部放到基准点的右边。这样在每次交换的时候就不会像冒泡排序一样只能在相邻的数之间进
行交换,交换的距离就大得多了。因此总的比较和交换次数就少了,速度自然就提高了。当
然在最坏的情况下,仍可能是相邻的两个数进行了交换。因此快速排序的最差时间复杂度和
冒泡排序是一样的,都是O(N2),它的平均时间复杂度为O (NlogN)。其实快速排序是基于一
种叫做“二分”的思想
设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全
部放到基准点的右边。这样在每次交换的时候就不会像冒泡排序一样只能在相邻的数之间进
行交换,交换的距离就大得多了。因此总的比较和交换次数就少了,速度自然就提高了。当
然在最坏的情况下,仍可能是相邻的两个数进行了交换。因此快速排序的最差时间复杂度和
冒泡排序是一样的,都是O(N2),它的平均时间复杂度为O (NlogN)。其实快速排序是基于一
种叫做“二分”的思想
相关文章推荐
- 通过键盘上下箭头来移动网页中相邻的两个input(升级版)
- php is_writable()函数
- freemarker学习笔记(写的较之另一篇不足)
- Android Fragment 真正的完全解析(下)
- springMVC(11) springMVC文件上传
- OkHttp的简单使用
- python-property
- 开学典礼
- hdu 5007 水 弦
- 大数相除求商求余数
- Android-客户端上传多张图片到服务器功能实现
- 模拟赛心得体会&COCI2014/2015CONTEST #1
- JavaScript 的 坑
- xml的解析DOM,SAX,DOM4J(含之间的区别)
- oracle用户下执行crontab -e报错
- JS数据类型之String类型
- apache HttpClient 3.X使用手册
- 验证码机制实现
- eclipse 背景色
- 1131 买水果【排列组合】大水坑!!