算法学习:快速排序
2015-12-12 21:12
134 查看
算法学习:快速排序
快速排序使用的是递归的思想,不断的用划分元素将数组分成以划分元素为分界的两个部分,递归求解。初学算法,不明白的时候就用一个例子,不断的写下程序执行的过程,一点一点去理解算法的含义。下面是自己根据陈玉福老师的讲义写的代码:
快速排序使用的是递归的思想,不断的用划分元素将数组分成以划分元素为分界的两个部分,递归求解。初学算法,不明白的时候就用一个例子,不断的写下程序执行的过程,一点一点去理解算法的含义。下面是自己根据陈玉福老师的讲义写的代码:
#include<iostream> using namespace std; void swap(int &a,int &b) { int temp; temp = a; a = b; b = temp; } int Partion(int p,int q, int *num) { int i = p + 1; int j = q; while(i <= j) { while(num[i] <= num[p] && i < q) { i++; } while(num[j] > num[p] && j >= p) { j--; } if(i < j) { swap(num[i], num[j]); } } swap(num[p], num[j]); return j; } void QS(int p,int q, int *num) { if(p < q) { int j; j = Partion(p, q, num); QS(p, j-1, num); QS(j+1, q,num); } } int main() { int num[4] = {1,44,3,7}; QS(0,3,num); for(int i = 0; i < 4;i++) { cout << i << " " << num[i] << endl; } return 0; }
用的Dev-C++,今天终于弄明白一点调试的方法,知道怎样动态看变量的值了,终于不用像之前写代码一样,写好多输出语句来调试程序,哈哈~~
相关文章推荐
- 递归
- 计算机中的IP地址
- Maven项目的发布,发布到Nexus
- Linux 下的tar.gz文件
- Find Median from Data Stream
- python的文件操作
- [javase学习笔记]-3.4 for语句
- org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for
- 南燕新闻自动生成软件——爬虫程序
- 选择客栈 noip2011
- java RC4加密和解码
- javaweb学习总结(三十九)——数据库连接池
- 使用Nuget生成类库
- cocos2d-x学习笔记(10)重复动作RepeatForever和Repeat 以及动作组合Sequence和Spawn
- 面对世界竞争对手,如何拿到Google PDF开源项目PDFium?
- 使用oschina的git服务器
- 项目 - 是否二叉排序树?
- Linux 学习第一篇
- java多线程学习笔记——详细
- JSPatch原理说明