前言: 本专栏旨在记录高频笔面试手撕代码题,以备数字前端秋招,本专栏所有文章提供原理分析、代码及波形,所有代码均经过本人验证。目录如下:1.数字IC手撕代码-分频器(任意偶数分频)2.数字IC手撕代码-分频器(任意奇数分频)3.数字IC手撕代码-分频器(任意小数分频)4.数字IC手撕代码-异步复位同步释放5.数字IC手撕代码-边沿检测(上升沿、下降沿、双边沿)6.数字IC手撕代码-序列检测(状态机写法)7.数字IC手撕代码-序列检测(移位寄存器写法)8.数字IC手撕代码-半加器、全加器9.数字IC手撕代码-串转并、并转串10.数字IC手撕代码-数据位宽转换器(宽-窄,窄-宽转换
文章目录迪杰斯特拉(Dijkstra)算法1.算法思想及其步骤2.代码2.1相关声明2.2有权图的建立函数定义2.3核心算法:迪杰斯特拉迪杰斯特拉(Dijkstra)算法引言:我们常常纠结一个对路径选择的决策问题,假设我们要从北京到上海,那么如何才能走花最少的钱,又最节省时间的线路呢?这时候,我们可以把从北京到上海间的路线站标记,那么北京到各路线站都会有相应的金钱和时间花费,我们只需要找出一条从北京到上海所经过的路线站的时间和金钱总值消耗最少的即可。显而易见,对应到图中,就是一张带权的图,即一张网。我们只需要找出起点到终点权值之和最少的路径即可。即target=Min(∑beginendw
文章目录前言一、二进制计数器(n位2^n状态)1.1可置位计数器1.2加减计数器二、环形计数器(n位n状态)2.1移位寄存器首尾相连构成环形计数器三、扭环形计数器/Johnson计数器(n位2*n状态)3.1移位寄存器来构成扭环形计数器四、格雷码计数器前言2023.5.12一、二进制计数器(n位2^n状态)1.1可置位计数器编写一个十六进制计数器模块,计数器输出信号递增每次到达0,给出指示信号zero,当置位信号set有效时,将当前输出置为输入的数值set_num。注意:这里zero=1和num=0是同一拍输出的,按道理如果根据num=0,然后去输出zero=1应该延迟一拍。所以这里考虑将nu
文章目录1.讲下对HashMap的认识2.HashMap的一些参数3.为什么HashMap的长度必须是2的n次幂?4.HashMap为什么在获取hash值时要进行位运算5.HashMap在JDK1.7和JDK1.8中有哪些不同?HashMap的底层实现6.HashMap的put方法的具体流程?7.HashMap的get方法的具体流程?8.HashMap的扩容操作是怎么实现的?JDK1.7扩容JDK1.8扩容9.HashMap在扩容时为什么通过位运算(e.hash&oldCap)得到下标?10.链表升级成红黑树的条件11.红黑树退化成链表的条件12.HashMap是怎么解决哈希冲突的?13.Ha
手撕排序算法系列之:冒泡排序。从本篇文章开始,我会介绍并分析常见的几种排序,大致包括插入排序,冒泡排序,希尔排序,选择排序,堆排序,快速排序,归并排序等。大家可以点击此链接阅读其他排序算法:排序算法_大合集(data-structure_Sort)本篇主要来手撕冒泡排序~~ 目录1.常见的排序算法1.1交换排序2.冒泡排序的实现2.1基本思想2.2单趟冒泡排序2.2.1思路分析2.2.2单趟代码实现3.冒泡排序代码实现4.冒泡排序测试5.冒泡排序的时间复杂度5.1最坏情况 5.2最好情况6.冒泡排序的优化写法 6.1优化思想6.2优化代码 6.3优化算法的时间复杂度6.3.1最坏情况6.3.2
在Bash中,我想取消设置HashMap的条目。但是我失败了。代码如下:declare-Aarrarr["a'b"]=3echo${!arr[@]}##output:a'bkey="a'b"unsetarr[$key]##error:-bash:unset:`arr[a'b]':notavalididentifier如何取消设置此条目? 最佳答案 只需使用单引号:$declare-Aarr=(["a'b"]=3[foo]=bar)$declare-parrdeclare-Aarr='(["a'\''b"]="3"[foo]="bar
在Bash中,我想取消设置HashMap的条目。但是我失败了。代码如下:declare-Aarrarr["a'b"]=3echo${!arr[@]}##output:a'bkey="a'b"unsetarr[$key]##error:-bash:unset:`arr[a'b]':notavalididentifier如何取消设置此条目? 最佳答案 只需使用单引号:$declare-Aarr=(["a'b"]=3[foo]=bar)$declare-parrdeclare-Aarr='(["a'\''b"]="3"[foo]="bar
前言为什么要学习排序算法?根据统计,早起大型机CPU资源的四分之一都花在了数据排序上面。排序算法作为最基础的算法,各种操作系统、编程语言都提供了内置的实现。既然排序实现随处可见,我们为什么还要自己动手实现呢?虽然经典算法要动手写写加深印象的道理都懂,但直到最近才发现,每种排序算法里都“暗藏玄机”。排序算法看似简单,其实不同的算法中蕴涵着经典的算法策略。通过熟练掌握排序算法,就可以掌握基本的算法设计思想,包括暴力枚举法、时间空间置换、子问题的分治以及随机化。目录一.排序的概念及其应用二.排序分类1.插入排序2.选择排序3.交换排序4.归并排序一.排序的概念及其应用1.1排序的概念排序:所谓排序,
前言为什么要学习排序算法?根据统计,早起大型机CPU资源的四分之一都花在了数据排序上面。排序算法作为最基础的算法,各种操作系统、编程语言都提供了内置的实现。既然排序实现随处可见,我们为什么还要自己动手实现呢?虽然经典算法要动手写写加深印象的道理都懂,但直到最近才发现,每种排序算法里都“暗藏玄机”。排序算法看似简单,其实不同的算法中蕴涵着经典的算法策略。通过熟练掌握排序算法,就可以掌握基本的算法设计思想,包括暴力枚举法、时间空间置换、子问题的分治以及随机化。目录一.排序的概念及其应用二.排序分类1.插入排序2.选择排序3.交换排序4.归并排序一.排序的概念及其应用1.1排序的概念排序:所谓排序,
👻内容专栏:《数据结构与算法篇》🐨本文概括:讲述排序的概念、直接插入排序、希尔排序、插入排序和希尔排序的区别。🐼本文作者:花碟🐸发布时间:2023.6.13一、排序的概念及其运用1.1排序的概念排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据