Fork me on GitHub

[置顶] 初步了解CPU

摘要: 了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识。默认学过工科基础课。 一、总述 先从计算机的结构说起,在现代计算机中,CPU是核心,常常被比喻为人的大脑。现在的计算机都为 阅读全文
posted @ 2016-04-22 23:09 JackKing_defier 阅读(1381) 评论(0) 推荐(0) 编辑

极客时间课程《数据结构与算法之美》笔记07 - 哈希算法

摘要: 哈希算法 如何防止数据库中的用户信息被脱库 定义和原理: 将任意长度的二进制值串映射为固定长度的二进制值串 要求: + 不能反向推导(单向哈希算法) + 对输入数据敏感,哪怕只修改了一个Bit,最后得到的哈希值也大不相同。 + 散列冲突概率要很小。 + 执行效率要高,针对较长的文本,也能很快地计算出 阅读全文
posted @ 2019-08-02 15:46 JackKing_defier 阅读(353) 评论(0) 推荐(1) 编辑

极客时间课程《数据结构与算法之美》笔记08 - 二分查找

摘要: 二分查找 普通循环代码: java // 二分查找的递归实现 public int bsearch(int[] a, int n, int val) { return bsearchInternally(a, 0, n 1, val); } private int bsearchInternally 阅读全文
posted @ 2019-08-02 15:44 JackKing_defier 阅读(194) 评论(0) 推荐(0) 编辑

极客时间课程《数据结构与算法之美》笔记06 - 散列表

摘要: 散列表(Word文档中的单词拼写检查功能) 优势 + 模拟映射关系 + 防止重复 + 缓存、记住数据,以免服务器再通过处理生成。 + 查找、插入、删除都非常快。 + 可以结合散列函数和数组来创建散列表,一般编程语言都提供了实现。 散列表执行各种操作的时间都为O(1),常量时间,无论散列表多大,所需时 阅读全文
posted @ 2019-07-10 11:55 JackKing_defier 阅读(225) 评论(0) 推荐(0) 编辑

极客时间课程《数据结构与算法之美》笔记09 - 跳表

摘要: 跳表 对链表改造一波,可以支持类似“二分”的查找算法,改造成跳表。 快速的插入删除查找,有些时候可以替代红黑树。 核心思想 是对链表建立一层索引(比如隔两个结点提取一个结点到上一级),减少遍历节点的数目。 进阶思想 是再加一层索引。 链表加多级索引的结构,就是跳表。 我的感觉思想比较接近向上生长的二 阅读全文
posted @ 2019-07-09 09:50 JackKing_defier 阅读(187) 评论(0) 推荐(0) 编辑

Java 学习笔记02

摘要: Java学习笔记02 要点记录: 1. 二维数组的维数 haha [][] // 已定义 int rowLength=haha.length;// 行数 int colLength=haha [i].length;// 列数。 2.String有不可变性,每次连接按键中读取的字符串都会构建一个新的S 阅读全文
posted @ 2019-07-09 09:24 JackKing_defier 阅读(152) 评论(0) 推荐(0) 编辑

极客时间课程《数据结构与算法之美》笔记05 - 排序

摘要: 排序 冒泡 原地排序 :就是特指空间复杂度是 O (1) 的排序算法。以下三个都是原地排序。 稳定性 :如果待排序的序列中存在值相等的元素,经过排序之后,相等元素之间原有的先后顺序不变。 冒泡特色: + 原地排序,空间复杂度O(1)。 + 稳定的排序算法。 + 最好情况,一次冒泡操作,时间复杂度O( 阅读全文
posted @ 2019-07-08 11:20 JackKing_defier 阅读(207) 评论(0) 推荐(0) 编辑

极客时间课程《数据结构与算法之美》笔记04 - 栈、队列、递归

摘要: 栈、队列、递归 两个栈实现表达式求值 实际上,编译器就是通过两个栈来实现的。其中一个保存操作数的栈,另一个是保存运算符的栈。我们从左向右遍历表达式,当遇到数字,我们就直接压入操作数栈;当遇到运算符,就与运算符栈的栈顶元素进行比较。 如果比运算符栈顶元素的优先级高,就将当前运算符压入栈;如果比运算符栈 阅读全文
posted @ 2019-07-08 11:19 JackKing_defier 阅读(261) 评论(0) 推荐(0) 编辑

极客时间课程《数据结构与算法之美》笔记03 - 链表

摘要: 链表 有些语言有 “指针” 的概念,比如 C 语言;有些语言没有指针,取而代之的是 “引用”,比如 Java、Python。不管是 “指针” 还是 “引用”,实际上,它们的意思都是一样的,都是存储所指对象的内存地址。 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针,或者反过来说,指针中存 阅读全文
posted @ 2019-07-08 11:18 JackKing_defier 阅读(181) 评论(0) 推荐(0) 编辑

极客时间课程《数据结构与算法之美》笔记02 - 数组与容器

摘要: 数组与容器 线性表 每个线性表上的数据最多只有前和后两个方向。 数组、链表、队列、栈都是线性表。 与此对应,非线性表指数据之间不是简单的前后关系。比如:二叉树、堆、图等。 数组有 连续的内存空间和相同类型的数据 ,这两个特性可以使其“ 随机访问 ”。 纠正知识点:数组和链表的区别 链表适合插入、删除 阅读全文
posted @ 2019-03-07 16:16 JackKing_defier 阅读(192) 评论(0) 推荐(0) 编辑

极客时间课程《数据结构与算法之美》01 - 复杂度

摘要: 复杂度计算 O (logn) 第2行申请一个空间存储变量i,可以忽略,和n无关。 第三行申请了大小为n的int类型数组,除此之外,无更多空间占用。故复杂度为O(n)。 均摊时间复杂度 大部分情况下,不必区分最好、最坏、平均情况时间复杂度三种情况。 java // array 表示一个长度为 n 的数 阅读全文
posted @ 2019-03-07 14:31 JackKing_defier 阅读(894) 评论(0) 推荐(0) 编辑