快排实现;
来源:互联网 发布:中国有多安全 知乎 编辑:程序博客网 时间:2024/06/03 09:26
1:用递归;(left<right)为进入条件
2:两边逼近:(low<high)-》先右边找到不满足的放到左边的(无意义位)空位置中,通过这个循环后就可以逼近low=high,这时把目标key付给v[low],即最后一个空位也填满了
#include <iostream>
2 #include <vector>
3 using namespace std;
4 void quicksort(int *v, int left, int right){
5 if(left < right){
6 int key = v[left];
7 int low = left;
8 int high = right;
9 while(low < high){
10 while(low < high && v[high] >= key){
11 high--;
12 }
13 v[low] = v[high];
14 while(low < high && v[low] <= key){
15 low++;
16 }
17 v[high] = v[low];
18 }
19 v[low] = key;
20 quicksort(v,left,low-1);
21 quicksort(v,low+1,right);
22 }
23 }
24 int main(){
25 int ivec[5];
26 int ic;
27 for(int ix=0;ix!=5;++ix)
28 {
29 cin>>ic;
30 ivec[ix]=ic;
31 }
32 for(int ix=0;ix!=5;ix++)
33 cout<<ivec[ix]<<" ";
34 cout<<"\n";
35 quicksort(ivec,0,4);
36 for(int ix=0;ix!=5;ix++)
37 cout<<ivec[ix]<<" ";
38 return 0;
39 }
- scheme实现快排
- 快排c++实现
- 快排简单实现
- Python实现快排
- 快排-java实现
- 实现的快排
- 快排实现;
- 快排实现
- 快排java实现
- javascript实现快排
- 单链表实现快排
- 快排:Swift实现
- 快排:Swift实现
- 快排--java实现
- 快排实现
- PHP实现快排
- 快排实现
- 快排实现
- PHP导入Excel到MySQL的方法
- dijkstra算法与prim算法的区别
- 网页设计师非常有用的几个在线工具
- 新建servlet后再配置web.xml后tomcat不能启动,报错:Caused by: org.apache.catalina.LifecycleException: Failed to star
- 常见linux系统调用
- 快排实现;
- java io和nio
- 求数组的最长递增子序列
- javascriptmvc—优秀代码
- java 正则表达式语法
- PHY芯片
- MariaDB
- UILabel学习
- Ruby中,类方法和实例方法的一个有趣的例子