排序(2)快速排序
来源:互联网 发布:淘宝上的nba旗舰店 编辑:程序博客网 时间:2024/05/21 13:54
快速排序:是对冒泡排序的一种改进。(因为快排算法元素间的比较次数比较少,速度快,因而得名快排。在各种内部排序方法中,快排被认为是目前最好的一种排序方法。)
快排之所以效率高,是因为每次元素的移动都是跳跃式的。每趟的排序都要指定一个基准点,把小于等于基准元素的所有元素都移动到基准元素前面,把大于等于基准元素的所有元素都移动到基准元素后面,元素移动的间隔距离较大,因此总的比较和移动次数减少,排序速度自然提高。
void quicksort(keytype k[],int s,int t) {int i,j;if(s<t) {i=s;j=t+1;while(1) {do i++;while(!(k[s]<=k[i] || i==t));do j++;while(!(k[s]>=k[j]) || j==s);if(i<j)swap(k[i],k[j]);elsebreak;}swap(k[s],k[j]);quick(k,s,j-1);quick(k,j+1,t);}}
快排一般只适用于顺序表线性结构或数组序列的排序,并不适合在链表结构上实现排序。
可以参考学习点击打开链接
阅读全文
0 0
- 排序(2)快速排序
- 排序(2)二分排序、快速排序、归并排序
- 排序2-快速排序
- 快速排序(2)
- acm: 排序--快速排序(2/2)
- C++排序之快速排序(2)
- 排序算法(2)—归并排序,快速排序
- 排序(希尔排序,堆排序,归并排序,快速排序)
- 排序(插入排序,希尔排序,归并排序,快速排序)
- 排序算法2---快速排序
- 排序总结(快速排序)
- 排序(之快速排序)
- 快速排序(java排序)
- wikioi1076 排序(快速排序)
- 排序(5)快速排序
- c++排序(快速排序)
- 排序(二)快速排序
- 排序(3)--快速排序
- CV主要网站
- 中国大学慕课C语言第一讲作业
- Link Cut Tree学习小记
- 高精度减法
- 01_入门指南--01_构建程序
- 排序(2)快速排序
- 2. Android
- java------多线程通信
- HTML--列表标签应用
- Java多线程学习总结(一)——多线程创建
- [Unity] Unity渲染优化
- window下C语言实现读取config.ini配置文件
- struts2:This method: login for action user is not allowed!
- 关于事件分发机制的思考