![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
maotianjiao
这个作者很懒,什么都没留下…
展开
-
三大排序算法(快速排序,归并排序,堆排序)
1)快速排序int partition(int* pData, int start, int end){ int pivot = pData[end]; while (start < end){ while (start < end && pData[start] <= pivot) start++; pData[end] = p原创 2013-10-14 17:06:13 · 855 阅读 · 0 评论 -
二叉树的遍历(非递归算法)
问题:假设二叉树节点的定义如下:struct BTreeNode{ int val; // 节点值 BTreeNode* pLeft; // 左子树指针 BTreeNode* pRight; // 右子树指针};请用C++非递归算法分别实现二叉树的先序遍历,中序遍历,后序遍历和层序遍历。1)先序遍历非递归算法思路:遍历原创 2013-10-14 13:01:57 · 534 阅读 · 0 评论 -
单源点最短路径算法(dijkstra)
问题描述:给定带权有向图G和源点v,求从v到G中其余各顶点的最短路径。算法思想:Dijkstra提出了一个按路径长度递增的次序产生最短路径的算法。首先,引进一个辅助向量D,它的每个分量D[i]表示当前所找到的从源点v到每个终点vi的最短路径长度。它的初始状态为:若v到vi有弧,则D[i]为弧上的权值,否则D[i]为无穷大。显然,长度为: D[j] = Min{D[i] | v原创 2013-10-24 22:11:54 · 1125 阅读 · 0 评论