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);}}
}

快速排序的递归和非递归的实现相关推荐

  1. C#实现(递归和非递归)快速排序和简单排序

    C#实现(递归和非递归)快速排序和简单排序 本人因为最近工作用到了一些排序算法,就把几个简单的排序算法,想冒泡排序,选择排序,插入排序,奇偶排序和快速排序等整理了出来,代码用C#代码实现,并且通过了测 ...

  2. 算法之快速排序(递归和非递归)

    快速排序的两种实现方式.递归和非递归 1 package com.ebiz.sort; 2 3 import java.text.SimpleDateFormat; 4 import java.uti ...

  3. 【好记性不如烂笔头】快速排序(三)非递归实现随机快排

    快速排序(三)非递归实现随机快排 前言

  4. 快速排序和归并排序中一趟的理解(递归和非递归)

    引:2019年408中数据结构一道考察快速排序的选择题 答案:D 定位:这道题在考察快速排序中一趟的概念.注意,基本的冒泡,插入,选择排序的一趟概念很容易理解, 接下来我们要讨论的是递归排序算法中(本 ...

  5. python快速排序递归与非递归

    快速排序递归与非递归python 写在前面 快速排序的递归函数 快排的切分函数 快排的非递归函数 完整的源代码 写在前面 众所周知,快速排序相对于选择排序,插入排序,冒泡排序等初级排序有着天然的优势. ...

  6. python创建树结构、求深度_数据结构-树以及深度、广度优先遍历(递归和非递归,python实现)...

    前面我们介绍了队列.堆栈.链表,你亲自动手实践了吗?今天我们来到了树的部分,树在数据结构中是非常重要的一部分,树的应用有很多很多,树的种类也有很多很多,今天我们就先来创建一个普通的树.其他各种各样的树 ...

  7. 二叉树的几种递归和非递归式遍历:

    二叉树的几种递归和非递归式遍历: 1 #include <fstream> 2 #include <iostream> 3 4 using namespace std; 5 6 ...

  8. 全排列(含递归和非递归的解法)

    全排列在近几年各大网络公司的笔试中出现的比较频繁 首先来看看题目是如何要求的(百度迅雷校招笔试题). 用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列, ...

  9. 分别用递归和非递归方式实现二叉树先序、中序和后序遍历(java实现)

    分别用递归和非递归方式实现二叉树先序.中序和后序遍历 用递归和非递归方式,分别按照二叉树先序.中序和后序打印所有的节点.我们约定:先序遍历顺序 为根.左.右;中序遍历顺序为左.根.右;后序遍历顺序为左 ...

  10. 汉诺塔的改编题(用栈求解,分别递归和非递归)

    限制不能从最左侧的塔直接移动到最右侧,也不能从最右侧直接移动到最左侧,而是必须经过中间,求当塔有N层的时候,打印最优移动过程和最优移动总步数 例如:当塔为两层时,最上层的塔记为1,最下层的塔记为2,则 ...

最新文章

  1. docker 端口映射 udp_Docker领路,走进压力测试的现代化 | 51上头条
  2. 题目1095:2的幂次方
  3. ITK:创建一个RGB图像
  4. 文本摘要提取_了解自动文本摘要-1:提取方法
  5. java 内省学习笔记
  6. SVG 教程 (五)文本,Stroke 属性,SVG 滤镜,SVG 模糊效果
  7. Android开发笔记(一百三十七)自定义行为Behavior
  8. 【机器人操作系统】ROS工作空间及功能包的创建
  9. 软件测试师和网络工程师,【软件测试工程师(科技部)网络工程师面试题目|面试经验】-看准网...
  10. 用RePKG解包.pkg文件【Wallpaper Engine】
  11. 【软考系统架构设计师】2010年下系统架构师案例分析历年真题
  12. ibeacon UWB GPS 空间四点定位算法
  13. 西南航空创始人:82岁,我心依旧狂野
  14. 7-33 电话聊天狂人 (25 分)(map水题)
  15. matlab中的for应用,Matlab中matlab中for_循环的原理和应用
  16. contest17 CF593 div2 ooxxx ooxxx ooooo
  17. 实现微信小程序精准定位
  18. vscode调试C/C++报错:the program has exited with code 42 (0x0000002a).
  19. SEO小白学习与实践(二):SEO相关基础知识与自有网站诊断
  20. 漫谈大数据 - Spark on Hive Hive on Spark

热门文章

  1. 1.3:Render Pipeline and GPU Pipeline
  2. Quarkus 0.12.0 发布,下一代 K8s 原生 Java 框架
  3. 【实验手册】使用Visual Studio Code 开发.NET Core应用程序
  4. asp.net webapi 微信接口接入
  5. oracle em命令行配置及界面按钮乱码问题解决方法
  6. Add-in Express for Office and .NET v7.3支持VS 2013预览
  7. Java对战.NET,战争与和平的游戏
  8. Girton conservations
  9. things to do in English debate: scenario
  10. graduation wishes from professor Youmin Xi