
算法
星星光点
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二叉树遍历非递归版本
#include <bits/stdc++.h> using namespace std; typedef struct Node* pNode; struct Node { char c; pNode lchild, rchild; Node(char c, pNode lchild = nullptr, pNode rchild = nullptr) : c(c), lchild(lchild), rchild(rchild) {} }; pNode build() {原创 2020-05-21 19:05:07 · 141 阅读 · 0 评论 -
堆排序、归并排序、快速排序
堆排序 #include<bits/stdc++.h> using namespace std; //堆排序问题二:如何调整一个堆? void HeapAdjusting(int a[], int root, int n) { int temp = a[root]; int child = 2 * root + 1; //左孩子的位置 while (child < n) { //找到孩子节点中较小的那个 if (child + 1 < n && a[c原创 2020-05-16 22:43:15 · 239 阅读 · 0 评论 -
转:拜托,别再问我贪心算法了!
转自 原文 前言 本文将会从以下几个方面来介绍贪心算法 什么是贪心算法 贪心算法例题详题 贪心算法适用场景 再看三角形最短路径和是否能用贪心算法求解 什么是贪心算法 贪心算法是指在每个阶段做选择的时候都做出当前阶段(或状态)最好的选择,并且期望这样做到的结果是全局最优解(但未必是全局最优解) 贪心算法其实是动态规划的一种,由于它的「贪心」,只着眼于当前阶段的最优解,所以每个子问题只会被计算一次...转载 2020-04-23 16:57:09 · 211 阅读 · 0 评论 -
常见算法——七大查找算法和八大排序
目录查找算法摘要七大查找算法排序算法摘要八大排序算法 查找算法摘要 查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二分查找的基础上的优化查找算法。树表查找和哈希查找会在后续的博文中进行...原创 2020-04-16 19:21:31 · 2163 阅读 · 0 评论 -
转:一文学会动态规划解题技巧
前言 动态规划(dynamic programming,简称 dp)是工程中非常重要的解决问题的思想,从我们在工程中地图软件上应用的最短路径问题,再在生活中的在淘宝上如何凑单以便利用满减券来最大程度地达到我们合理薅羊毛的目的 ,很多时候都能看到它的身影。不过动态规划对初学者来说确实比较难,dp状态,状态转移方程让人摸不着头脑,网上很多人也反馈不太好学,其实就像我们之前学递归那样,任何算法的学习都是...转载 2020-02-23 16:38:25 · 207 阅读 · 0 评论 -
转:一文学会递归解题
前言 递归是算法中一种非常重要的思想,应用也很广,小到阶乘,再在工作中用到的比如统计文件夹大小,大到 Google 的 PageRank 算法都能看到,也是面试官很喜欢的考点 最近看了不少递归的文章,收获不小,不过我发现大部分网上的讲递归的文章都不太全面,主要的问题在于解题后大部分都没有给出相应的时间/空间复杂度,而时间/空间复杂度是算法的重要考量!递归算法的时间复杂度普遍比较难(需要用到归纳法等...转载 2020-02-22 13:13:04 · 155 阅读 · 0 评论