自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tiko.T的部落格

知己难求,不如自己写。

原创 几个好玩有趣的Python入门实例

几个简单的Python实例,好玩有趣,基础语法。 turtle库开始自己的绘画 写一个属于自己的文本进度条 蒙特卡洛方法计算π 分形几何,Koch雪花曲线 输入一组数据,进行简单的统计 小说词频统计,统计三国演义中谁出场率最高 轻松抓住文本主旨:文本词云生成 drawing with ...

2018-07-12 21:57:07

阅读数 14696

评论数 0

原创 正则表达式入门

内容:如题 前置技能:None 参考教程:30分钟正则入门 前言 最近喜欢各种入门,这里入门一下正则表达式。字数很少比较水。 字符串可以说是编程是遇到的最多的一种数据结构,也是最简单的数据结构,对字符串操作的需求可谓无处不在。给人阅读的文本可以看做字符串,内存中存储的特定编码序列...

2018-06-10 19:47:52

阅读数 85

评论数 0

原创 The Linux Command Line

This passage is about getting started with GNU/Linux by reading The Linux Command Line. Chinese version is available here. It’s an excellent introduc...

2018-06-03 21:01:31

阅读数 92

评论数 0

原创 Python入门

Life is short, I use Python. 版本:3.6 文档:The Python Language Reference 入门:廖雪峰Python教程 环境:Win 10 / Linux 安装:sudo apt install python 基础 hello,...

2018-06-03 11:30:58

阅读数 112

评论数 0

原创 【write a toy cpu】实现

自上大学开始,很早就听说过了CPU这个东西,唯一知道的是:这个东西很复杂,这个东西是计算机的核心,这个东西集成电路做的,而且主要应该是数字集成电路做的,就是说主要进行的是0和1的操作。但对内部工作原理还是一脸懵逼。众所周知,计算机的五个组成部分为运算器(数据通路)、控制器、存储器、输入/输出设备。...

2018-05-20 15:12:27

阅读数 163

评论数 0

原创 【write a toy cpu】环境搭建

这篇搭建开发环境,下一篇稍微详述实现过程。这两篇来源于看《自己动手写CPU》(作者博客)时写代码顺带写的笔记。这是一本非常棒的介绍cpu工作原理并且实践性很强的入门书籍,看完之后对CPU内部构造、MIPS指令集、流水线设计、Verilog编程都有了一定的了解。这本书倾向于实践,涉及到的理论部分的内...

2018-05-20 15:10:02

阅读数 202

评论数 0

原创 Brainfuck

Brainfuck 是一门非常简单甚至可以说是最简单的编程语言,wikipedia。 它的语法由一个8个字符的字符集组成,即><+=.,[]八个字符。brainfuck的模型还包括一个以字节为单位、被初始化为零的数组、一个指向该数组的指针(初始时指向数组的第一个字节)...

2018-04-25 16:37:20

阅读数 881

评论数 0

原创 高效排序算法——希尔排序、堆排序、归并排序、快速排序

如标题,这里讨论的是基于比较的排序算法中最高效的三种算法和希尔排序。堆排序、归并排序、快速排序的平均时间复杂度均为O(NlogN)。前面有介绍过O(N2)的三种简单排序算法(见三大简单排序算法——插入、选择、冒泡),其中实际表现最好的要属希尔排序。可以证明通过交换相邻元素来进行排序的任何算法都需要...

2018-04-09 22:07:22

阅读数 1689

评论数 0

原创 写一个简单的C++控制台游戏——扫雷

扫雷 MineSweeper 用过Windows XP的用户一定不会忘记那一款有趣、烧脑(maybe)的扫雷游戏。(反正我是没有怎么玩过)这里将用C++控制台程序简单实现这个扫雷游戏。 Win7下的扫雷就是下面这个画风的: 首先,我们分析以下这个游戏: 地图由正方形小方块组成的矩...

2018-04-05 21:55:54

阅读数 2368

评论数 1

原创 优先队列 & 堆

这里讨论堆。通常当我们谈论堆时,我们经常谈论的是二叉堆。但这并不是堆的全部。堆(heap),可以说是树(tree)的一种。参见下图: 图中并不算十分完整,但也基本显示出的树的家族的轮廓。二叉树就不多说了。这次主要讨论二叉堆(binary heap)以及左偏树(leftist tree)。二叉...

2018-03-24 13:05:57

阅读数 72

评论数 0

原创 AVL树

AVL树是一种带有自平衡性质的的二叉查找树,也就是说,在多次插入删除或者极端数据情况下依然可以保证O(logn)的操作复杂度。文章同步发布在个人博客,链接:AVL树。 自平衡的二叉查找树 上一篇中的二叉查找树在多次插入删除后,树的节点会向其中一边下沉,操作(插入/删除/查找)的复杂度会...

2018-03-24 13:01:48

阅读数 75

评论数 2

原创 哈希表

哈希表是一种 以常数平均时间执行插入、删除和查找操作的数据结构,但是哈希表一般不提供任何与排序相关的操作,如Findmax,FindMin,sort。 哈希表 散列表(Hash table,也叫哈希表),是根据关键字的值(Key value)而直接进行访问的数据结构。这里的关键字可能是...

2018-03-20 19:44:22

阅读数 99

评论数 0

原创 二叉查找树

简单介绍树,基础说多了也没什么意思,这里主要实现二叉查找树。 树 树,是一种非线性的数据结构,是一种特殊的(没有回路的)图,主要用在涉及到一个问题具有分支情况下的建模。树的若干定义都很简单,像父亲,儿子,根,兄弟,祖先,树叶,树枝,深度,高度等。在很多情况下,我们主要讨论二叉树(Binary ...

2018-03-17 21:06:54

阅读数 75

评论数 0

原创 ALgorithms started

前言 Algorithm入门,随便写一写,算法复杂度分析,和几个简单的问题——最大子序列之和、最大公因数、二分查找。 复杂度分析 常用记号O(f(n))O(f(n))O(f(n)),表示上界,Ω(f(n))Ω(f(n))\Omega (f(n))表示下界,Θ(f(n))Θ(f(n))...

2018-03-14 16:09:30

阅读数 55

评论数 0

原创 矩阵快速幂

快速幂 快速幂算法很熟悉很容易理解,原理 nm={(n2)m/2(n2)m/2⋅nm为偶数m为奇数nm={(n2)m/2m为偶数(n2)m/2⋅nm为奇数n^m = \begin{cases} (n^2)^{m/2} & m为偶数 \\(n^2)^{m/2}\cdot n & m...

2018-03-10 16:59:37

阅读数 102

评论数 0

原创 【离散数学】高级计数技术

这是离散数学的第四篇,讨论高级计数技术。同步发布与个人博客,上一篇(【离散数学】计数/排列组合)讨论了计数以及排列组合,二项式定理等。但是仅凭排列组合等手段依然无法解决许多计数问题。这里首先讨论通过递推关系来求解计数问题,并介绍有递推关系引出的两个算法范式:动态规划和分治。这两种算法均是通过将问题...

2018-03-08 19:13:59

阅读数 589

评论数 3

原创 【离散数学】计数/排列组合

离散数学第三篇,讨论基本的计数技术——排列组合及其推广。组合数学是离散数学的重要组成部分,这里比较简略,待到有时间详细学习组合数学后再讨论一些复杂一点的问题。那何为组合数学呢?组合数学(Combinatorics)是研究一定条件的组态的存在、计数以及构造的科学。直白说就是研究物体如何安排的科...

2018-02-22 21:08:44

阅读数 1390

评论数 0

原创 【离散数学】基本结构——集合、函数、序列、矩阵

离散数学第二篇,首先讨论常用工具——集合,并讨论在集合基础之上的一系列结构:函数、序列、矩阵、关系等。所有内容在以前的知识体系中均有涉猎,此处是从集合的角度去考虑这些内容。我认为其中要数集合的基数这一小节中可数集和不可数集的部分最为抽象。这里仅仅涉及一些常用定义性质和精彩的证明。 首...

2018-02-22 21:03:43

阅读数 1854

评论数 0

原创 【离散数学】逻辑与证明

离散数学是计算机专业很重要的基础课程,是后续数据结构,算法的基础。在学习数据结构的时候,接触到图论算法的时候,遇到了困难。于是决定回来学习离散数学。离散数学(课本)包括了数理逻辑、集合论、计数技术、关系、树、图和布尔代数等。每个章节都是数学与算法的基础,都接触过,但都没有太过深入。唯一一...

2018-02-22 21:00:18

阅读数 3416

评论数 2

原创 C++语法入门【3】C++函数特性

C++函数具有一些C语言不具有的特性,内联函数、引用参数、const参数、const与引用返回值、默认参数、函数重载、函数模板等特性。承接上一篇C++语法入门【2】函数,这里介绍C++的函数特性。 C++内联函数 使用关键字inline定义,添加在函数声明或者定义前即可将函数声明...

2018-01-18 21:36:44

阅读数 97

评论数 0

原创 C++语法入门【2】函数

C++函数具有一些C语言不具有的特性,例如内联函数、引用参数、const参数、默认参数、函数重载、函数模板等特性。这些特性将在下一篇介绍。这里先介绍函数的基本知识。 函数 In C/C++函数何为函数,编程语言中的函数类似于数学的函数,但又不同于数学中的函数,Wikipedia(function)...

2017-12-23 20:11:18

阅读数 82

评论数 0

原创 C++语法入门【1】命名空间、数据类型

这一篇主要关于我最近在看C++时的一些感想和一些语法细节。 C++进阶之路(图片来自知乎): C++ Started目前仍然算是开始阶段,C++ Primer Plus 是还没有看完的。 在写下了hello,world:#include<iostream> using namesp...

2017-11-09 21:02:53

阅读数 201

评论数 0

原创 常识性算法一弹

刚开始学习算法,做一些题的时候,总会发现一些特别基础的可以说是常识性的东西自己没有掌握,写代码完全是靠模拟(意淫)。这些算法一般不涉及到数据结构,只是一些很基础的简单问题,是解决某些问题的一个步骤。所以是时候总结(积累)一波了,遇到一个加一个进来。适时再把这篇笔记发到博客。 常识性的算法这里介绍几...

2017-11-09 19:42:58

阅读数 149

评论数 0

原创 基本数据结构——堆

堆(二叉堆)作为一种比较重要的数据结构,完全二叉树的线性存储。其典型的应用就是堆排序和优先队列。 堆(Heap) 堆(二叉堆)是一个数组,也可以被看做一个近似的完全二叉树。将二叉树从顶层向底层,从左向右,从1开始编号,直到二叉树节点个数n。得到完全二叉树的层序遍历序列,即是二叉...

2017-11-02 21:07:48

阅读数 168

评论数 0

原创 三大简单排序算法——插入、选择、冒泡

排序作为一个如此经典与常见的问题,排序算法自然也是各种各样、各具特点。 本文主要讨论三个时间复杂度为O(n2)的简单排序算法,即插入排序、选择排序和冒泡排序。 在Wiki了排序算法之后,瞬间感觉世界之大排序算法之多。Wiki链接。 简单排序算法 最好时间复杂度 最坏时间复杂度...

2017-10-31 17:50:30

阅读数 199

评论数 0

原创 常用数据结构——栈及其应用

队列和栈作为一种最简单最基本的常用数据结构,可以说在许多方面都应用广泛。在程序运行时,他们可以保存程序运行路径中各个点的信息,以便用于回溯操作或其他需要访问已经访问过的节点信息的操作。这里对栈的特点、作用做出描述、并简单地用不同途径实现了栈的基本功能。本文的实现分别用了C语言(不是纯C,仍为cpp...

2017-10-01 11:26:08

阅读数 356

评论数 5

原创 常用数据结构——队列及其应用

队列和栈作为一种最简单最基本的常用数据结构,可以说在许多方面都应用广泛。在程序运行时,他们可以保存程序运行路径中各个点的信息,以便用于回溯操作或其他需要访问已经访问过的节点信息的操作。这里对队列的特点、作用做出描述、并简单地用不同途径实现了队列的基本功能。并介绍了队列的典型应用——迷宫问题。

2017-09-28 11:39:19

阅读数 6386

评论数 1

原创 kmp算法 in POJ【POJ3461,POJ2752,POJ2406,POJ1961】

POJ_3461 Oulipo 简单的kmp使用,找出第一个字符串在第二个字符串中出现的次数 #include #include #include using namespace std; int main(void) { char mother[10001]; char son[1001];...

2017-08-29 11:19:44

阅读数 175

评论数 0

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