随笔分类 - 数据结构&算法
常见数据结构的理解与实现
常见算法问题的总结
摘要:STLmap实现自定义排序 1.map按照键值 key进行排序 map没有随机迭代器,只有顺序迭代器,不能使用sort 默认情况下是按照 less 升序排列 cpp multimap mp; //注意后空一格 // 自定义key 仿函数,或者lambda表达式 include include usi
阅读全文
摘要:MIT HAKMEM算法 1.问题来源 "牛客刷题" 问题描述: cpp int bitcount(unsigned int n) { unsigned int tmp; tmp = (n &010101010101) +((n 1)&010101010101) +((n 2)&0101010101
阅读全文
摘要:详细的具体步骤 : "一篇讲的很好博客" "AVL,红黑树优先博客 Never" 先对二叉树的不平衡结构进行总结: 各种旋转 特别注意字母含义(结构)和其旋转操作之间的区别 | 二叉树不平衡结构 | 性质 | 平衡操作 | | | | | | LL | root bf =2 | root left
阅读全文
摘要:1.问题来源 在刷题是遇到字符串相关问题中使用 strcmp()函数。 在函数比较过程中有使用 排序函数 Sort(beg,end,comp),其中comp这一项理解不是很彻底。 cpp // 基础实现 void BubbleSort(vector& nums){ int i,j; int len=
阅读全文
摘要:无向加权图 1.生成树(minimum spanning trees) 图的生成树是它一棵含有所有顶点的无环联通子图 最小生成树:生成树中权值和最小的(所有边的权值之和) Prim算法、Kruskal算法就是实现最小生成树的算法 应用前提:权值各不相同的连通子图(权值相同,最小生成树不唯一) 2.P
阅读全文
摘要:算法的性能衡量 程序的运行效率:程序解决问题所需要的时间和占用内存的多少 1.时间复杂度 时间频度: 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。 但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。 一个算法花费的
阅读全文
摘要:Dynamaic Programming 定义: 动态规划是运筹学中用于求解决策过程中的最优化数学方法。作为算法设计技术,是一种使用多阶段决策过程最优的通用方法。是解决最优化问题的重要工具。 动态规划的特性: 无后效性 最优子结构 如何设计DP 动态规划的本质,是对问题状态的定义和状态转移方程的定义
阅读全文
摘要:位运算 数字用二进制表示后的运算 无论是有符号,无符号还是其他各种类型的数。它们之间的转换的基石就是二进制的表达式没有发生改变,变得只是转换的表达式。 1.简单的布尔运算 Boolean algebra 与&,或|,非~,异或^ |与& |0|1| | | | | |0|0|0| |1|0|1| |
阅读全文
摘要:Binary Search "专题1.二分查找" "有序中查找两个元素" 001.Binary Search cpp // 我感觉题目有问题 // 而且,这个代码还是不是理解的很透彻 class Solution { public: vector searchRange(vector& nums,
阅读全文