自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 资源 (1)
  • 收藏
  • 关注

原创 【数据结构与算法】->算法->回溯算法

回溯算法Ⅰ 前言Ⅱ 回溯算法的理解Ⅲ 回溯算法的经典应用A. 0-1 背包B. 正则表达式Ⅳ 总结Ⅰ 前言在前面讲深度优先搜索算法的时候,我说其实深度优先搜索算法利用的就是回溯算法思想。【数据结构与算法】->算法->深度优先搜索&广度优先搜索这个算法思想非常简单,但是应用非常广泛。它除了用来指导像深度优先搜索算法这种经典的算法设计之外,还可以用在很多实际的软件开发场景中,比如正则表达式匹配、编译原理中的语法分析等。除此之外,很多经典的数学问题都可以用回溯算法解决,比如数独、八皇后、0-1

2020-09-16 00:27:25 393

原创 【数据结构与算法】->算法->分治算法->MapReduce的基本思想

分治算法

2020-09-15 09:55:34 747

原创 【数据结构与算法】->算法->贪心算法

贪心算法(Greedy Algorithm)Ⅰ 前言Ⅱ 贪心算法的理解Ⅲ 贪心算法实战分析1. 分糖果2. 钱币找零3. 区间覆盖Ⅳ 生活中的贪心算法Ⅰ 前言贪心算法(Greed Algorithm)的思想其实是生活中一个很常用的思想,贪心算法本身也有很多经典的应用,比如哈夫曼编码(Huffman Coding)、Prim 和 Kruskal 最小生成树算法、Dijkstra 单源最短路径算法。最小生成树和最短路径在我后面的文章中会介绍,哈夫曼编码在我之前的文章中也讲过了,今天我们再从贪心算法的角度来看

2020-09-15 00:54:32 673

原创 【数据结构与算法】->算法->AC自动机->敏感词过滤功能要如何实现?

AC 自动机Ⅰ 前言Ⅱ 用 Trie 树实现敏感词过滤Ⅲ AC 自动机原理及实现Ⅳ 敏感词过滤系统的实现Ⅰ 前言很多支持用户发表文本内容的网站或者软件,大都会有敏感词过滤功能,用来过滤掉用户输入的一些淫秽、反动、谩骂等内容,这个功能是怎么实现的呢?其实,这些功能的最基本的原理就是字符串匹配算法,也就是通过维护一个敏感词的词典,当用户输入的一段文字后,通过字符串匹配算法,来查找用户输入的这段文字,是否包含敏感词,如果有,就用 * 把它替代掉。我在之前的文章中,讲过很多种字符串匹配算法,它们都可以处理这

2020-09-14 22:12:59 1256

原创 【数据结构与算法】->数据结构->Trie树->如何实现搜索引擎的关键词提示功能?

Trie树Ⅰ 前言Ⅱ Trie 树的原理Ⅲ Trie 树的实现Ⅳ Trie 树的执行效率Ⅴ Trie 树与散列表、红黑树的比较Ⅵ 如何实现搜索引擎的关键词提示功能Ⅰ 前言大家肯定都用过搜索引擎,应该对下面的情形很熟悉了????我们在搜索框输入内容的时候,搜索引擎会根据关键词猜测你要搜的是什么,然后给你提示。这就是一般搜索引擎都有的搜索关键词提示功能。你可以直接从下拉框中选择你要搜索的东西,而不用把所有内容都输入进入,这在一定程度上就节省了我们的时间。并且我们知道,在我们增加或更改输入的内容,下拉框里

2020-09-14 00:34:17 694

原创 【数据结构与算法】->算法->字符串匹配基础(下)->KMP 算法

字符串匹配基础(下)—— KMP 算法Ⅰ 前言Ⅱ KMP 算法基本原理Ⅲ 失效函数计算方法Ⅳ KMP 算法代码实现Ⅴ KMP 算法复杂度分析Ⅰ 前言在前两节中,我详细讲了字符串匹配的三个算法,BF,RK 和 BM 算法,BM 算法可以说是这三个包括这篇要讲的 KMP 算法里最难最复杂的,也非常不好理解。但是 BM 算法却是工程中非常常用的一种高校字符串匹配算法。有统计说,它是最高效、最常用的字符串匹配算法。但是,在所有的字符串匹配算法中,要说最知名的一种,那肯定是非 KMP 算法莫属。很多时候,提到字符

2020-09-13 19:00:51 509

原创 【数据结构与算法】->算法->字符串匹配基础(中)->BM算法->KMP 三倍性能的强大算法

字符串匹配基础(中)—— BM算法Ⅰ 前言Ⅱ BM 算法核心思想Ⅲ BM 算法原理分析1. 坏字符规则2. 好后缀规则Ⅰ 前言文本编辑器的查找替换功能相信大家都不陌生,很多 IDE 像 Eclipse,IntelliJ,包括 Word,都有这个功能,把一个词统一替换成另一个。那这个功能是如何实现的呢?如果用前一篇文章里的 BF 算法和 RK 算法,当然可以实现这个功能,但是在某些极端情况下,BF 算法性能会退化得比较严重,而 RK 算法需要用到哈希算法,但是设计出一个可以应对各种类型字符的哈希算法并不

2020-09-13 15:05:59 1407

原创 【数据结构与算法】->算法->字符串匹配基础(上)->BF 算法 & RK 算法

字符串匹配基础(上)Ⅰ 前言Ⅱ BF 算法A. 原理B. 代码实现Ⅲ RK 算法A. 原理Ⅰ 前言字符串匹配这个功能,对于任何一个开发工程师来说,应该都不陌生。我们用的最多的就是编程语言中提供的字符查找函数,比如 Java 中的 indexOf(),Python 的find()等等,它们的底层就是接下来我们要说的字符串匹配算法。字符串匹配算法很多,分单模式串匹配和多模式串匹配,这篇文章我们就来说说两个相对来说比较简单、好理解的单模式串匹配,它们分别是 BF 算法 和 RK 算法。RK 算法其实相当于

2020-09-12 22:18:23 586

原创 【数据结构与算法】->算法->深度优先搜索&广度优先搜索

深度&广度 优先搜索Ⅰ 前言Ⅱ 什么是“搜索”算法?Ⅲ 广度优先搜索(BFS)Ⅳ 深度优先搜索(DFS)Ⅰ 前言在前一篇文章中,我讲解了图的概念以及图的表示方法,也讲了如何用无向图、有向图来表示一个社交网络。要是对图还不熟悉的同学可以先跳转去看看。【数据结构与算法】->数据结构->图这篇文章就来讲讲两个搜索算法,深度优先搜索和广度优先搜索。Ⅱ 什么是“搜索”算法?我们知道,算法是作用于具体数据结构之上的,深度优先搜索算法和广度优先搜索算法都是基于“图”这种数据结构的,因为图的表达能力很强

2020-09-12 12:39:06 1120

原创 【数据结构与算法】->数据结构->图

图(Graph)Ⅰ 前言Ⅱ 如何理解“图”?Ⅲ 图的存储结构A. 邻接矩阵存储方法B. 邻接表存储方法Ⅳ 图的代码实现Ⅴ 如何存储微博的好友关系Ⅰ 前言相信大家都用过微信、微博、QQ 这些社交软件中的一个,在微信和QQ中,两个人可以互相加为好友;在微博中,两个人可以互相关注。那么,我们要如何存储微信、微博这些社交网络的好友关系呢?这就要用到我们这篇文章中要讲的一个数据结构——图。实际上,涉及图的算法有很多,也非常地复杂,比如图的搜索、最短路径、最小生成树、二分图等等等等……这篇文章我们聚焦在图上,先

2020-09-11 22:29:52 535

原创 【数据结构与算法】->数据结构->堆(下)->堆的应用

堆的应用Ⅰ 前言Ⅱ 堆的应用一:优先级队列1. 合并有序小文件2. 高性能定时器Ⅲ 堆的应用二:利用堆求 Top KⅣ 堆的应用三:利用堆求中位数Ⅰ 前言在前一篇文章里,我详细讲解了堆的原理以及实现,也给出了一个堆的最容易想到的应用——堆排序,但实际上堆还有几个非常重要的应用,在软件开发中我们可能会经常用到,这篇文章我们就来看一看这几个应用。【数据结构与算法】->数据结构->堆(上)->详解堆&堆排序Ⅱ 堆的应用一:优先级队列首先,我们来看堆的第一个应用场景——优先级队列。优先级队列,顾

2020-09-11 18:10:18 380

原创 【数据结构与算法】->数据结构->堆(上)->详解堆&堆排序

堆(Heap)Ⅰ 前言Ⅱ 定义Ⅲ 堆的实现A. 堆的存储结构B. 堆支持的操作① 往堆中插入一个元素② 删除堆顶元素Ⅳ 堆排序A. 建堆B. 排序Ⅴ 堆排序与快速排序的比较Ⅰ 前言在前面的文章里,我讲了树、二叉树以及二叉树的特殊形式。这篇文章,我们再来看看另外一种特殊的树——堆(Heap)。堆这种数据结构应用的非常多,最经典的莫过于堆排序了。接下来我们就从堆的原理出发,弄清楚堆到底是什么,怎么实现,以及基于此的堆排序的实现。【数据结构与算法】->数据结构->树与二叉树Ⅱ 定义前面我们已经说到了,

2020-09-11 01:13:06 381

原创 【数据结构与算法】->数据结构->二叉查找树

二叉查找树(Binary Search Tree)Ⅰ 前言Ⅱ 什么是二叉查找树Ⅲ 关于二叉查找树的几个操作A. 查找B. 插入C. 删除D. 其他操作Ⅳ 二叉查找树对重复数据的处理Ⅴ 时间复杂度分析Ⅵ 散列表和二叉查找树的对比Ⅰ 前言在前面的文章里,我详细讲解了树与二叉树,也讲解了一种特殊的二叉树——哈夫曼树,这篇文章我们就来继续探讨另一种特殊的二叉树:二叉查找树。二叉查找树最大的特点就是,支持动态数据集合的快速插入、删除以及查找操作。Ⅱ 什么是二叉查找树二叉查找树是二叉树中最常用的一种类型,也叫二

2020-09-10 16:47:13 695

原创 【数据结构与算法】->数据结构->树与二叉树

树与二叉树Ⅰ 树(Tree)A. 树的概念B. 树的表达形式(存储结构)C. 树的遍历a. 广度优先遍历(队列)b. 深度优先遍历(堆栈)Ⅱ. 二叉树(Binary Tree)A. 二叉树的有关概念B. 二叉树中相关公式C. 二叉树的存储结构① 链式存储法② 顺序存储法D. 二叉树的遍历Ⅲ 总结Ⅰ 树(Tree)A. 树的概念树状图是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特

2020-09-10 00:15:50 557

原创 【数据结构与算法】->数据结构->散列表(下)->散列表和它的好朋友链表

散列表(下)Ⅰ 前言Ⅱ LRU 缓存淘汰算法Ⅲ Redis 有序集合Ⅳ Java LinkedHashMapⅤ 为什么散列表经常要和链表一起用?Ⅰ 前言关于散列表的基本思想我在前两节中已经讲完了,有兴趣的同学可以跳转过去看看。这篇文章我想说一对组合。【数据结构与算法】->数据结构->散列表(上)->散列表的思想&散列冲突的解决【数据结构与算法】->数据结构->散列表(中)->工业级散列表的设计熟悉数据结构的同学们可能会发现,散列表和链表经常会放在一起使用。在链表的讲解中,我提到了 LRU

2020-09-09 19:41:00 382

原创 【数据结构与算法】->数据结构->散列表(中)->工业级散列表的设计

散列表(中)Ⅰ 前言Ⅱ 如何设计散列函数Ⅲ 如何处理装载因子过大Ⅳ 如何避免低效的扩容?Ⅴ 如何选择冲突解决方法?1. 开放寻址法2. 链表法Ⅵ 工业级散列表分析1. 初始大小2. 装载因子 & 动态扩容3. 散列冲突解决办法4. 散列函数Ⅶ 如何设计一个工业级的散列表?Ⅰ 前言在散列表(上)中我介绍了散列表的思想和基本内容,我们知道,散列表的查询效率并不能笼统地说成是 O(1),它和散列函数、装载因子、散列冲突等都有关系。如果散列函数设计得不好,或者装载因子过高,都可能导致散列冲突发生的概率升

2020-09-09 16:44:26 250

原创 【数据结构与算法】->数据结构->散列表(上)->散列表的思想&散列冲突的解决

散列表(上)Ⅰ 散列思想Ⅱ 散列函数Ⅲ 散列冲突A. 开放寻址法B. 链表法Ⅳ 如何实现单词拼写检查功能Ⅰ 散列思想散列表的英文叫 “Hash Table”,我们平时也叫它 “哈希表” 或者 “Hash 表”。散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,有数组演化而来。可以说没有数组的话,就没有散列表。这里我用一个例子来说明散列思想。假如学校开运动会,一共有 72 名运动员参赛。为了方便比赛成绩的记录,每个运动员的胸前都会贴上自己的参赛号码,从 1 到 72。

2020-09-09 00:39:16 596

原创 【数据结构与算法】->数据结构->跳表

跳表Ⅰ 前言Ⅱ 如何理解跳表Ⅲ 用跳表查询到底有多快Ⅳ 跳表的内存损耗Ⅴ 高效的动态插入和删除A. 插入B. 删除Ⅵ 跳表索引动态更新Ⅶ 为何 Redis 要用跳表?Ⅷ 代码实现Ⅰ 前言在我之前的一篇文章里,我详细讲了二分查找,在文中我提到,二分查找底层依赖的是数组随机访问的特性,所以只能用数组来实现。如果数据存储在链表中,就真的没办法用二分查找算法了吗?【数据结构与算法】->算法->二分查找实际上,我们只需要对链表做一个小改造,就可以支持类似“二分”的查找算法。我们把改造之后的数据结构叫做跳表(S

2020-09-08 21:34:38 2832

原创 【数据结构与算法】->算法->二分查找

二分查找Ⅰ 前言Ⅱ 无处不在的二分思想Ⅰ 前言这篇文章我将详细分析一种针对有序数据集合的查找算法:二分查找(Binary Search) 算法,也叫 折半查找算法。二分查找的思想非常简单,但是看似越简单的东西往往越难掌握。唐纳德·克努特(Donald E.Knuth)在《计算机程序设计艺术》的第三卷《排序和查找》中说道:“尽管第一个二分查找算法于 1946 年出现,然而第一个完全正确的二分查找算法实现直到 1962 年才出现。”所以千万不要小看了二分查找,我将会带领大家由浅入深地去探究一下这个算法。

2020-09-08 17:39:10 1538

原创 【数据结构与算法】->算法->排序(四)->排序优化->如何实现高性能的通用排序函数

排序(四)Ⅰ 前言Ⅱ 如何选择合适的排序算法Ⅲ 如何优化快速排序Ⅳ 举例分析排序函数Ⅰ 前言前面三节,我已经把基本的排序算法都讲完了,第四节作为一个总结,分析一下排序算法的优化。【数据结构与算法】->算法->排序(一)->冒泡排序&插入排序&选择排序【数据结构与算法】->算法->排序(二)->归并排序&快速排序【数据结构与算法】->算法->排序(三)->线性排序->桶排序&计数排序&基数排序几乎所有的编程语言都会提供排序函数,比如 C 语言中 qsort(

2020-09-07 23:24:52 257

原创 【数据结构与算法】->算法->排序(三)->线性排序->桶排序&计数排序&基数排序

排序(三)Ⅰ 前言Ⅱ 桶排序(Bucket Sort)A. 原理B. 适用场景C. 代码实现Ⅲ 计数排序(Counting Sort)A. 原理B. 适用场景C. 代码实现Ⅳ 基数排序(Radix Sort)A. 原理B. 适用场景C. 代码实现Ⅰ 前言再次把之前的表拿出来。排序算法就剩最后三个要讲啦。前面两节可以跳转下面两篇文章去看????【数据结构与算法】->算法->排序(一)->冒泡排序&插入排序&选择排序【数据结构与算法】->算法->排序(二)->归并排序&快速排

2020-09-07 22:12:03 330

原创 【数据结构与算法】->算法->排序(二)->归并排序&快速排序

排序(二)Ⅰ 前言Ⅱ 归并排序(Merge Sort)1. 详解2. 归并排序稳定性3. 归并排序时间复杂度4. 归并排序空间复杂度Ⅲ 快速排序(Quicksort)1. 详解2. 快速排序稳定性3. 快速排序时间复杂度4. 快速排序空间复杂度Ⅳ 补充1. 归并排序和快速排序的区别2. O(n) 时间复杂度内求无序数组中的第K大元素Ⅰ 前言在排序(一)中,我给了一个表第二节我们就来看看时间复杂度为 O(nlog2n) 的两个算法,归并排序以及快速排序。第一节的排序可以从下面的链接跳转过去。【数据结

2020-09-07 17:16:11 421

原创 【数据结构与算法】->算法->排序(一)->冒泡排序&插入排序&选择排序

排序(一)Ⅰ 前言Ⅱ 如何分析一个“排序算法”A. 排序算法的执行效率1.最好情况、最坏情况、平均情况时间复杂度2.时间复杂度的系数、常数、低阶3.比较次数和交换(或移动)次数B. 排序算法的内存消耗C. 排序算法的稳定性Ⅲ 冒泡排序(Bubble Sort)1. 详解2. 冒泡排序内存消耗3. 冒泡排序稳定性4. 冒泡排序时间复杂度① 有序度② 逆序度5. 拓展-直接交换排序Ⅳ 插入排序(Insertion Sort)1. 详解2. 插入排序内存消耗3. 插入排序稳定性4. 插入排序时间复杂度5. 拓展-

2020-09-07 00:55:25 670

原创 【程序员必修数学课】->基础思想篇->递归(下)->分而治之&从归并排序到MapReduce

递归(下)前言归并排序中的分治思想分布式系统中的分治思想1.数据分割和映射2.归约3.合并总结前言在上一篇中,我介绍了如何使用递归,来处理迭代法中比较复杂的数值计算。但是我们知道,有些迭代法并不是简单的数值计算,而是要通过迭代的过程进行一定的操作,过程更加复杂,需要考虑很多中间数据的分配或者保存。比如我在迭代法中提到的使用二分查找进行数据匹配,或者这篇文章里将要讲解的归并排序中的数据排序等等。在这种情况下,要怎么使用递归法呢?【程序员必修数学课】->基础思想篇->迭代法【程序员必修数学课

2020-09-06 16:26:58 479

原创 【程序员必修数学课】->基础思想篇->递归(上)->泛化数学归纳

递归前言如何在限定总和的条件下求加和?迭代法递归法前言在前几篇文章中我不断引用更改了国际象棋发明人被国王赏麦子的故事,这篇文章我还需要再借一下这两个人。舍罕王和宰相达依尔来到了现代,这次舍罕王聪明了,他对宰相说,“这次我不用麦子赏你了,我直接给你发钱。另外,我也不用棋盘了,我直接给你一大笔固定数额的钱。”宰相思考了一下,回答道:“没问题,陛下,就按照您的意愿。不过,我有一个小小的要求。能...

2020-09-06 09:11:12 511

原创 【Java SE】——Java环境的安装和配置

Java环境的安装与配置〇 前言A. JDKB. JREa. JVMⅠ 第一步 下载JDK&JREⅡ 第二步 环境变量配置Ⅲ 第三步 验证Ⅳ Java程序的编译Ⅴ 后记〇 前言在学习Java编程之前,我们首先要完成Java环境的配置。其中,Java的编译软件以及执行软件,这些统称为Java环境。详细地说,Java环境是由两部分组成的:JDK 和 JRE。A. JDKJDK(Java Development Kit)是太阳微系统针对Java开发人员发布的免费软件开发工具包(SDK,Softw

2020-06-16 16:25:54 1252

原创 【程序员必修数学课】->基础思想篇->数学归纳法->如何用数学归纳提高代码效率

上一篇文章里,我说了数学中的迭代法,并用编程实现了国际象棋发明者的那个麦粒的计算问题,这篇文章我们就来看看数学归纳法。通过数学归纳法,我们能直接从理论上证明某个结论,从而避免很多计算,节约大量的计算资源和时间。平常我们说的归纳,就是从大量经验事实中找出普遍特征的认知方法。我在我的一篇文章里,介绍了模式识别和机器学习的区别,其中机器学习就是一种归纳的方法,是自下而上的,这也是人类的许多体系的构成方...

2020-04-16 18:24:48 438

原创 【工具】->chcp用法->如何解决PowerShell中文乱码->各语言编码

有时候我们写完程序在命令行运行的时候,会出现中文乱码的情况,这时候要么是你的文本编辑器的编码方式和命令行的不搭配,要么是命令行的语言不是中文。命令行的编码可以通过chcp来改变,代码页如下????代码页国家(地区)或语言437美国708阿拉伯文(ASMO 708)720阿拉伯文(DOS)850多语言(拉丁文 I)852中欧(DOS) - 斯拉夫语...

2020-04-14 17:07:27 2072

原创 【数据结构与算法】->数据结构->链表->LRU缓存淘汰算法的实现

链表Ⅰ 链表与数组Ⅱ 链表结构链表在缓存的应用Ⅰ 链表与数组相比数组,链表是一种稍微复杂一点的数据结构。这两个非常基础,非常常用的数据结构,我们常常会放到一起来比较。所以我们先来看看,这两个数据结构有什么区别。从底层的存储结构上看,数组在我的上一篇文章里已经讲过,申请的空间是连续的,对内存的要求比较高。如果我们申请一个大小为 100MB 的数组,当内存的连续存储空间没有 100MB ,就会申...

2020-04-11 21:24:13 862

原创 【程序员必修数学课】->基础思想篇->迭代法

迭代法Ⅰ 象棋&米粒-迭代法Ⅱ 编程求麦粒的数量Ⅲ 迭代法的应用① 求方程的精确或者近似解② 查找匹配记录Ⅰ 象棋&米粒-迭代法这里引用一个大家从小就听过的小故事。传说,印度的舍罕国王打算重赏国际象棋的发明人——大臣西萨·班·达依尔。这位聪明的大臣跪在国王面敢说:“陛下,请你在这张棋盘的第一个小格内,赏给我一粒麦子,在第二个小格内给两粒,在第三个小格内给四粒,照这样下去,每...

2020-04-10 19:56:54 1009

原创 【程序员必修数学课】->基础思想篇->余数->哈希函数的本质

这篇文章是关于数学中一个常见的概念——余数。提起余数,想必大家都不陌生,我们生活中就有许多关于余数的例子。比如,今天是星期二,你想知道30天之后是星期几,就可以用 30 除以 7(一周七天),余 2,最后在今天的基础上加上两天,这样你就知道了,30天后是周四。再比如,我们做 Web 编程时,经常要用到分页的概念。如果你要展示 1123 条数据,每页 10 条,那么该怎么计算总共的页数呢?大部...

2020-04-10 16:00:08 501

原创 【程序员必修数学课】->基础思想篇->二进制->原码&反码&补码的数学论证

关于二进制你要知道的

2020-04-07 17:30:15 847

原创 【数据结构与算法】->数据结构->数组

数组Ⅰ 前言Ⅱ 数组的定位A. 线性表B. 连续存储空间 & 相同数据类型a. 插入操作b. 删除操作c. 随机访问Ⅲ 数组下标为什么要从0开始?Ⅳ 容器能否完全代替数组?Ⅰ 前言提到数组,大家想必都很熟悉,因为这是编程早期最先学的一个数据结构。大家可能会觉得十分简单,但是就是因为简单,可能很多人都没有掌握数组的精髓。事实上,在每一种编程语言中,基本都会有数组这种数据类型。比如在P...

2020-03-26 16:59:19 788

原创 【数据结构与算法】->详解时间复杂度和空间复杂度

时间复杂度&空间复杂度Ⅰ 前言Ⅱ 为什么需要复杂分析度分析?——事后统计法的局限性局限一:测试结果依赖测试环境局限二:测试结果受数据规模影响Ⅲ 大 O 复杂度表示法Ⅳ 时间复杂度分析① 只关注循环执行次数最多的一段代码② 加法法则③ 乘法法则Ⅴ 几种常见的时间复杂度实例分析① O(1)② O(logn) & O(nlogn)③ O(m + n) & O(m * n)Ⅵ 空间...

2020-03-25 22:06:23 1234 1

原创 【工具】->Linux虚拟机安装->VMware安装Deepin教程详解

VMware安装DeepinⅠ 前言Ⅱ 虚拟机的安装Ⅲ 深度Deepin的下载Ⅳ 安装系统Ⅰ 前言deepin(原名:Hiweed Linux及Linux deepin,中文名:深度操作系统)是由武汉深之度科技有限公司开发的开源操作系统,是中国第一个具备国际影响力的Linux发行版本。Linux的操作系统有很多种,这篇文章将会手把手带领大家安装Deepin,也就是深度,一个极其好用的Li...

2020-03-17 22:32:57 1562 1

原创 【HTML5】->表单元素第三节->信息获取

信息获取Ⅰ 前言Ⅰ 前言在前两节中,我已经说完了表单的大部分元素,这篇文章就是表单的最后一篇。在这篇文章里,我会讲解几个表单获取信息的属性,它们都是input的属性,比如用input获取邮件,input获取电话,input获取颜色,input上传图片等等。...

2020-03-04 10:01:58 520 2

原创 HTML5——专栏索引篇

前言HTML5是前端技术比较热门的一个语言,它是超文本标记语言,不属于真正的编程语言,所以学起来没有那么难,很多东西HTML5本身已经给出了,都很方便。这篇文章是我写的HTML5的一个专栏总结篇,便于索引和查找。关于HTML5,你想知道的,都在这里了。目录第一课:HTML入门----------------------------------------------------------...

2020-03-02 21:05:51 584

原创 【数据结构与算法】->数据结构->队列->循环数组的应用&队列工具库的创建

队列Ⅰ 队列的定义Ⅱ 队列的实现A. 普通数组的不合理之处B. 循环数组的应用Ⅰ 队列的定义队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列的特点:先进先出。堆栈的特点:先进后出。Ⅱ 队列的实现队列有两种实现的方法...

2020-03-02 11:05:49 456

原创 【操作系统】->一篇文章了解操作系统们的发家史

操作系统历史Ⅰ Linux发家史① IBSYS (1955~1965)② 从IBSYS到OS/360 (1965~1980)③ 从OS/360到MULTICS (1965~1980)④ 从MOLTICS到UNIX (1980~1990)⑤ 从UNIX到Linux (1990~2000)⑥ 总结Ⅰ Linux发家史① IBSYS (1955~1965)计算机里有一个上古神机,IBM 7094。...

2020-02-28 10:55:53 1846

原创 【杂篇】->模式识别&机器学习&我的学习

  这篇文章的想法来源于吴伯凡老师的课程《认知方法论》,在吴伯凡老师的知识框架下,我想说一说我对模式识别和机器学习的浅薄认识。  机器学习是近几年很热门的一个门类,这学期我选了这门课,不是说要多深入地学习,我是一个数学一直不太好的人,也决定了我这门课可能也无法太过精进。但我还是选了这门课,期于这门课能带给我新的视野,给我一个窥见前沿天光的一个窗口。  最早对机器学习有了很深的印象大概是在去...

2020-02-26 17:47:36 511

PersonalFinancialMangeSystem.zip

该程序完成了对个人收支明细的管理系统,实现将明细写入文件,对信息进行添加、删除以及查询汇总。个人收支明细包括编码(各个不同项自行编码)、金额、发生时间以及备注,查询时可以做到根据时间进行汇总。

2020-06-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除