数据结构与算法-单链表
数据结构讨论的是数据的存储方式,常用的数据结构分为两大类,一类是线性结构,一类是非线性结构。线性结构是一对一的关系,非线性结构是一对多,或者多对多的关系。链表,栈,队列等数据结构是线性结构;树,图等数据结构是非线性结构。
链表链表是通过指针将一组零散的内存块串连在一起,我们称这个内存块为链表的结点。结点一般有指针域和数据域两个部分,不同类型的链表,指针域有所不同。
单链表单链表是指每个结点有且只有一个后继指针指向下一个结点,并且最后一个结点的后继指针为 NULL。
链表中第一个结点称之为头结点,最后一个结点称之为尾结点。头结点用来记录链表的基地址,有了头结点,我们可以遍历整个链表;尾结点的后继指针为空,表示这是链表的最后一个结点。头结点不存放数据,只存放指向首结点的指针域,引入头结点的目的是为了方面链表的插入和删除操作。
结点单链表的结点由数据域和一个指向下一个结点的指针域组成。
public class ListNode { int id; String name; ListNode next; public ListNode(int id, ...
数据结构与算法-复杂度分析
我们都知道,设计数据结构和算法是为了让程序跑的更快、性能更好,同时能节省空间。所以算法的执行效率是一个非常重要的考量指标,一般这个指标我们可以通过分析时间复杂度和空间复杂度来衡量。
为什么需要复杂度分析代码写完后在机器上执行一遍,我们就能知道算法执行的时间和占用的内存,为什么还要做复杂度分析呢?因为这种方式测算的结果有非常大的局限性。
测试结果依赖测试环境
直接执行代码统计的结果很大程度上依赖于测试所使用的环境。同样一段代码,在十年前破旧的电脑上执行和现在最新,配置最高的电脑上执行,时间肯定是不一样的。都是最新的电脑,Intel 和 AMD 的处理器跑出来的结果也可能不一样。这样,程序的性能就受到了环境的影响,并不能准确的反映出程序的好坏。
测试结果受数据规模的影响大
测试数据规模的不同,测试的结果相差很大。测试数据规模太小,测试结果可能无法真实地反应算法的性能。
所以,我们需要一个方法,不用具体的数据测试就可以粗略的判断算法的执行效率。
时间复杂度算法的执行效率,简单的说,就是代码执行的时间。在不执行代码的情况下,通过计算每一行代码执行的次数来估计代码的执行时间,这里我们 ...
shell脚本自动登录telnet
公司项目采用C程序开发,有些设置需要登录到telnet上面去操作,但是现场部署上线之后,有一百多台虚机,如果全部手动去操作,太麻烦了🙃…使用 shell 写个脚本,就可以自动去登录操作了。
登录不同的主机,可以有两种方式,一种把 IP 地址放在字符串中,另外一种放在文件中。
读取字符串方式把 IP 地址放在字符串中,这种适合 IP 地址少的,如果 IP 地址太多,写代码的时候比较麻烦。
配置 IP 和 PORT
字符串之间用空格隔开
hosts=("192.168.1.48" "192.168.1.49" "192.168.1.50" "192.168.1.51" "192.168.1.52")port=("12041" "12042" "12043" "12044" "12045")
循环登录#!/bin/bashfor (( i=0;i<${#hosts[*] ...
hexo主题配置—butterfly
hexo默认的主题实在是不好看,好在有大量的开发者和爱好者开发了很多的主题,非常感谢他们😁,这样我们就可以选择自己喜欢的主题进行部署配置了。官方教程请参考主题开发者博客。
本配置基于butterfly主题3.7.1版本。
主题配置安装主题
在hexo的根目录下,右键git bash here,直接克隆主题
git clone https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
更换主题
在_config.yml文件中修改主题名称
theme: butterfly
安装插件
如果系统没有pug和stylus渲染器,需要安装
npm install hexo-renderer-pug hexo-renderer-stylus --save
配置升级
butterfly 主题需要将该主题目录下的butterfly.yml复制到hexo安装的根目录,改名为_config.butterfly.yml
主题的配置全部都在_config.butterfly.yml配置文件中修改,hexo 会 ...
码云gitee部署hexo个人博客
Hexo搭建个人博客部署到码云gitee是非常方便的,而且访问速度很快,之前在github上部署过,但是国内访问响应速度太慢。
工具安装搭建hexo博客之前,需要先安装所需要的依赖工具:Node.js和Git
node.js 安装在node.js 官网 下载最新稳定版本的 node.js 文件,然后双击安装
git 安装在 git 官网 下载最新稳定版本的 git 文件,然后双击安装
安装部署 hexohexo 安装安装
新建一个文件夹存放用来存放hexo配置,然后单击鼠标右键,选择git bash here
npm install -g hexo
初始化
在git bash中输入命令初始化hexo,路径为存放hexo的路径
hexo init
本地测试安装完成后,先在本地测试是否安装成功
生成静态文件hexo g
启动服务hexo s
访问服务
在浏览器中访问localhost:4000 ,如果能看到默认的页面就部署成功了
部署博客到码云giteegitee是国内的网站,无论是自己编写博客提交的响应,还是访问博客的速度都非常快,而github是国外的网站,所以访问 ...