快速排序的递归和非递归的实现
来源:互联网 发布:lgd和淘宝 编辑:程序博客网 时间:2024/05/20 06:09
struct QuickS{ int low; int high;};int Partition(int *arr,int st,int ed){//快速排序的划分 int pos = arr[st]; while(st < ed){ while(arr[ed] > pos && st < ed) ed --; arr[st] = arr[ed]; while(arr[st] <= pos && st < ed) st ++; arr[ed] = arr[st]; } arr[st] = pos; return st;}void QuickSort(int *arr,int st,int ed){//快速排序的递归算法 if(st < ed){ int pos = Partition(arr,st,ed); QuickSort(arr,st,pos-1); QuickSort(arr,pos+1,ed); }}void QuickSortN(int *arr,int low,int high){//快速排序的非递归算法 stack<QuickS> S; QuickS p,q; p.low = low;p.high = high;S.push(p); while(!S.empty()){ q = S.top(); S.pop(); if(q.low < q.high){ int pos = Partition(arr,q.low,q.high); p.low = q.low;p.high = pos - 1;S.push(p); p.low = pos + 1;p.high = q.high;S.push(p); } }}
0 0
- 快速排序。冒泡排序递归和非递归的实现
- 快速排序的递归和非递归的实现
- 快速排序的递归和非递归实现
- 快速排序的递归和非递归实现
- 快速排序的递归和非递归实现
- 快速排序-递归和非递归的实现
- 快速排序的递归和非递归实现
- 快速排序的递归和非递归实现
- 快速排序的递归和非递归实现方法
- 快速排序的递归和非递归实现
- 快速排序的递归和非递归实现
- 快速排序的递归和非递归实现
- 快速排序的递归和非递归实现
- 快速排序、冒泡排序、堆排序、shell排序的递归和非递归实现
- 快速排序的非递归实现
- php的非递归快速排序实现
- 非递归的快速排序实现(转)
- 快速排序的非递归实现
- Egret typescript二维码生成库
- 安卓移动逆向(扫盲)
- 莫队——BZOJ3289 Mato的文件管理
- 经典读者写者问题
- Re-entrant Locks
- 快速排序的递归和非递归的实现
- [Android逆向]-Android逆向基础
- 浅谈CSS hack
- 1、设计模式之一
- 用plotrix包做双坐标轴图
- apt-get 命令总结
- Python元类编程——with_metaclass
- 异常
- 怎样一键转载csdn的博客