文章 2024-10-08 来自:开发者社区

【初阶数据结构】打破递归束缚:掌握非递归版快速排序与归并排序

一、非递归实现快速排序 void QuickSortNonR(int* a, int begin, int end) { ST s; STInit(&s); STPush(&s, end); STPush(&s, begin); while (...

【初阶数据结构】打破递归束缚:掌握非递归版快速排序与归并排序
文章 2024-06-06 来自:开发者社区

数据结构和算法学习记录——二叉树的非递归遍历(中序遍历、先序遍历、后序遍历)

二叉树的非递归遍历运用到堆栈 中序遍历 循环的思路是 遇到一个节点,就把它压栈,并去遍历它的左子树。 当左子树遍历结束之后,从栈顶弹出这个节点并访问它。 然后按其右指针再去按中序的遍历循环去遍历该节点的右子树。 代码实现 ...

数据结构和算法学习记录——二叉树的非递归遍历(中序遍历、先序遍历、后序遍历)
文章 2024-06-03 来自:开发者社区

【数据结构】归并排序的非递归写法和计数排序

学习目标:       我们大家应该都了解归并排序,而且可以很容易地将归并排序的递归形式写出,但是在面试或其他情况下,可能会考察我们非递归的写法,在这一篇博客中,我们会记录到如何写出归并排序非递归的写法,以及另一种排序方法:计数排序。 学习内容: 通过上面的学习目标,我们可以列出要学习的内容: 归并排序的非递归写法 ...

【数据结构】归并排序的非递归写法和计数排序
文章 2024-05-23 来自:开发者社区

[数据结构]——非递归排序总结——笔试爱考

1.非递归实现的快速排序算法。 第一步 首先要创建一个栈 typedef struct Stack//创建一个栈 { int* data;//存储栈中的元素的数组指针 int...

[数据结构]——非递归排序总结——笔试爱考
文章 2024-05-09 来自:开发者社区

【数据结构】二叉树的三种遍历(非递归讲解)

1、前言 学习二叉树的三种非递归遍历前,首先来了解一下递归序: 递归序就是按照先序遍历的顺序,遇到的所有结点按顺序排列,重复的结点也必须记录。 我们可以发现递归序中每个结点都会遇...

【数据结构】二叉树的三种遍历(非递归讲解)
文章 2024-05-06 来自:开发者社区

【C语言/数据结构】排序(快速排序及多种优化|递归及非递归版本)

交换排序 快速排序 快排的过程图如下: hoare版代码呈现 ...

【C语言/数据结构】排序(快速排序及多种优化|递归及非递归版本)
文章 2024-04-09 来自:开发者社区

【数据结构与算法】快速排序(详解:快排的Hoare原版,挖坑法和双指针法|避免快排最坏时间复杂度的两种解决方案|小区间优化|非递归的快排)

引言 快速排序作为交换排序的一种,在排序界的影响力毋庸置疑,我们C语言中用的qsort,C++中用的sort,底层的排序方式都是快速排序。相比于同为交换排序的冒泡,其效率和性能就要差的多了,本篇博客就是要重点介绍快速排序的实现,以及其代码和效率的优化。 ...

【数据结构与算法】快速排序(详解:快排的Hoare原版,挖坑法和双指针法|避免快排最坏时间复杂度的两种解决方案|小区间优化|非递归的快排)
文章 2024-03-28 来自:开发者社区

【数据结构与算法】:非递归实现快速排序、归并排序

1.非递归实现快速排序 快速排序的非递归实现主要依赖于栈(stack)来模拟递归过程中的函数调用栈。递归版本的快速排序通过递归调用自身来处理子数组,而非递归版本则通过手动管理一个栈来跟踪接下来需要排序的子数组的边界 那么怎样通过栈来实现排序的过程呢? 思路如下: 使用栈实现快速排序是对递归版本的模拟。在递归的快速排序中,函数调用栈隐式...

【数据结构与算法】:非递归实现快速排序、归并排序
文章 2024-01-23 来自:开发者社区

数据结构排序——详细讲解归并排序(c语言实现递归及非递归)

上次是快排和冒泡今天为大家带来归并排序1.基本思想归并排序是一种分治算法,它将序列分成两个子序列,分别对子序列进行排序,然后将排序好的子序列合并起来。这个过程可以递归地进行,直到序列长度小于等于1时停止递归。在合并子序列的过程中,需要比较两个子序列的元素,并按顺序将它们合并成一个有序序列注意:归并排序的关键在于合并两个有序的子序列,这一步需要额外的空间来存储中间结果。在实际的实现中,可以使用递归....

数据结构排序——详细讲解归并排序(c语言实现递归及非递归)
文章 2024-01-17 来自:开发者社区

数据结构和算法面试题:实现一个函数,将一棵二叉树转换为它的镜像。(递归或者非递归实现)

数据结构和算法面试题:实现一个函数,将一棵二叉树转换为它的镜像。(递归或者非递归实现)简介:实现一个函数,将一棵二叉树转换为它的镜像。(递归或者非递归实现)该算法的实现思路如下:对于当前节点,交换其左右子树。递归地对该节点的左右子树进行镜像转换。下面是使用C++实现将一棵二叉树转换为它的镜像(非递归实现)的代码,并附带详细注释:#include <iostream> #include....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

算法编程

开发者社区在线编程频道官方技术圈。包含算法资源更新,周赛动态,每日一题互动。

+关注