数据结构算法
数据结构算法学习笔记
辰月二十七
这个作者很懒,什么都没留下…
展开
-
查找相关知识点
查找符号表有序数组中的二分查找1. 二叉查找树2. 红黑树(平衡二叉查找树)3. 散列表 符号表 有序数组中的二分查找 二分查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。所以适用于静态有序数据查找,因为添加和删除元素需要维护数据的有序性,代价大。 二分查找详解 public static int Method(int[] nums, int target) { int low = 0; int high = nums.Length - 1; while (low原创 2020-05-25 16:52:58 · 169 阅读 · 0 评论 -
位运算及其骚操作
位运算概念补码运算符左移运算:<<右移运算:>>按位与:&按位或:|按位异或:^按位取反:~应用1. 判断数字奇偶2. 变量交换3. 运算 + - * /4. 异或筛去出现偶数次的数5. 位操作交换符号6. 位操作求绝对值7. 位操作进行高低位交换 概念 计算机中的数在内存中都是以二进制形式进行存储的,用位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高,在程序中尽量使用位运算进行操作,这会大大提高程序的性能。 补码 数值有正负之分,二进制中最高位为0代表正原创 2020-05-15 17:41:09 · 407 阅读 · 0 评论 -
动态规划
动态规划一道需要采用动态规划解决的题的特点有哪些?例题讲解:硬币 一道需要采用动态规划解决的题的特点有哪些? 面试时面试官不会明说,请采用动态规划算法解决这道题,所以我们首先应该判断一道题是否需要采用动态规划。 1.计数型: 有多少种方式走到右下角 有多少种方法选出k个数使得和是Sum … 2.求最值: 从路径的最大和 最长… 3.求存在性: 取石子游戏,先手是否必胜 能不能选出k个数使得和是Sum 动态规划与分治方法类似,都是通过组合子问题的解来来求解原问题的。 再来了解一下什么是分治方法,以及这两者之间原创 2020-05-14 21:57:24 · 190 阅读 · 0 评论 -
排序总览
排序总览概述1. 冒泡2. 直接插入排序3. 直接选择排序4. 堆排序5. 计数排序6. 桶排序7. 希尔排序8. 快速排序9. 归并排序具体代码实现1. 冒泡2. 直接插入排序3. 直接选择排序4. 堆排序5. 计数排序6. 桶排序7. 希尔排序8. 快速排序9. 归并排序 概述 这短时间找各种排序学了下,头晕脑胀的。猴子掰玉米,学的时候原理都理解了,可是记住了这个,忘记了前面的。。。 所以特意做个总览,把优缺点和特性梳理下。也方便后续查找。 大概描述下排序算法思路简介,和各个排序的C#实现。重点是描述下原创 2020-05-14 21:47:22 · 217 阅读 · 0 评论 -
漫画算法学习笔记
漫画算法概述数据结构基础树排序面试中的算法如何判断链表有环实际应用 近期看了本书 《obook.cc-漫画算法:小灰的算法之旅±+魏梦舒》 推荐买这本书 很有意思,也学到很多。比写业务有趣多了。 好记性不如烂笔头,所以记录下笔记,顺便用自己的方式c#实现以下,毕竟名言说的好Talk is cheap, show me the code。 基本流程是: 先看题,有思路直接写代码,没思路接着看接替思路...原创 2020-05-02 19:39:43 · 324 阅读 · 0 评论