- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 树,最复杂的数据结构
树,是计算机中最复杂的一种数据结构,它的形式多变,有各种各样复杂的树被人创造并在计算机的各个地方使用,如红黑树,B+树等。本文将对树这一基本的数据结构进行介绍。文章目录1.什么是树2.满二叉树3.完全二叉树4.总结1.什么是树树是计算机中最重要的,也是大大提高效率的一种数据结构。树同样是存储数据的一种结构,只不过,它以树的方式进行组织。如下图所示,是一棵二叉树。图中的每个圆圈称为“结点”...
2020-02-19 21:48:18 1186
原创 队列,计算机中的排队模型
生活中随处可见队列,例如食堂打饭,超市买单的时候,我们都会自然而然地排队。那么,在计算机中如何表示这一现象呢?文章目录1.什么是队列2.入队与出队3.循环队列4.总结1.什么是队列队列,是一种我们再熟悉不过的模型了,现实中到处可见它的场景,比如,饭堂打饭需要排队,购票需要排队。队列是一种最体现公平的数据结构,因为它的特点就是“先进先出(First In First Out,FIFO)”...
2020-02-16 09:55:24 1749
原创 栈,实现递归的数据结构
栈在计算机中扮演着重要的角色,它是计算机实现函数调用的基本数据结构。文章目录1.什么是栈2.入栈3.出栈4.栈的实现5.总结1.什么是栈栈是一种较为特殊的数据结构,它的特点是先进后出。什么意思呢?想象你有一个跟书本一样长宽的盒子,当你依次往里面放进书本1,书本2,书本3之后,如果想要把书本1拿出来,你会发现现在你能拿出来的只有书本3。因为其他两本都被压在下面了。只有当书本3,书本2被依...
2020-02-15 10:07:00 1818
原创 链表,最省内存的数据结构
链表,是数据结构比较基础的一种数据结构。它具有节省内存,需要多少就创建多少的特性。文章目录1.什么是链表2.创建链表3.查找元素4.删除元素5.总结1.什么是链表链表是一种比较节省内存的数据结构,它的每个元素是一个节点node,每个node包含了存储值value和下个节点指针next,指向下一个node。在数组中,我们需要先为数据分配一定大小的空间,比如int a[10]。但实际上,我...
2020-02-14 10:54:45 1124
原创 数组,编程语言的基石
引言在计算机的世界中,数据可以有各种各样的组织形式,比如,模拟现实中排队取钱的队列,代表复杂的社交网络的图结构等,不同的数据结构各自适应不同的情况。学习数据结构,我们能够为我们要解决的问...
2020-02-13 10:40:35 205
原创 排序算法之桶排序
目录本文将介绍排序算法中又快又简单的排序算法——桶排序,包括:桶排序计数排序基数排序1桶排序桶排序是在已经数据的范围的条件下,创建若干个桶,根据相应的比较规则将待排数据落入各个对应的桶...
2020-02-12 08:53:24 426
原创 排序算法之归并排序
引言本文将介绍排序算法中的归并排序,学习归并排序需要很好地理解计算机中的分治思想和递归思想。1分治思想归并排序,利用分而治之的思想,将大的问题,转换成简单的,小的问题来解决。分治,字面...
2020-02-11 09:36:03 242
原创 排序算法之快速排序,它为什么这么快?
目录本文将介绍排序算法中最常用,以及最重要的快速排序。包括:快速排序实例代码解析效率分析1快速排序实例快速排序由C. A. R. Hoare在1960年提出,是冒泡排序的一种改进。快速...
2020-02-10 09:34:29 1409 1
原创 排序算法之希尔排序
本文将介绍排序算法中的希尔排序,它是高级版的插入排序,是我们第一个介绍的有点难度的算法。1. 实例讲解希尔排序,是插入排序的一个升级版本。在插入排序中,无论数据是怎么分布的,依然循规蹈矩的一步一步比较,移动,插入。在希尔排序中,采用跳跃式的方式,按照某个增量gap将数组元素分成多组序列,并使用插入排序使得各自组内有序。随后逐步缩小gap,继续按组进行插入排序,直到增量为1。这样...
2020-02-09 10:20:43 814
原创 排序算法之插入排序,玩扑克牌必会
本文将介绍排序算法中的插入排序,包括: 插入排序实例 代码解析 效率分析 1 插入排序实例今天来学习插入排序,在讲插入排序之前,我们先来讲一讲扑克牌。每个人都会打扑克牌,不知道你们有没有注意到,我们在拿牌的时候,会习惯性地把手上的牌按照从小到大排好。这样我们在出牌的时候才不会手忙脚乱。当你的小伙伴正在发牌的时候,如果你习惯发一张拿一张,你可能会无意中用到插...
2020-02-08 13:06:08 646
原创 排序算法之冒泡排序,入门必学
本文将对排序算法中的冒泡排序进行讲解。1 冒泡排序今天介绍另外一种排序算法,冒泡排序。它的基本思想是,对相邻的元素进行两两比较,顺序相反则交换,这样,每趟会将最小(或最大)的元素浮到数组最后面,最终达到整体有序。冒泡排序也是较为直观的一种排序算法,以整体升序为例,我们先看看每一趟具体发生了什么:我们可以看到,每一趟过程中,从左到右,相邻的位置进行比较,如果不符合升序,就将其位置对调。...
2020-02-07 10:39:25 378
原创 排序算法之选择排序
排序算法是每个程序员必须掌握的基础知识。目前经典的排序算法,有冒泡排序,选择排序,插入排序,希尔排序,快速排序,堆排序,归并排序,桶排序。本文将对选择排序进行讲解。另外,我最近注册了个人公众号【萌凯的程序人生】,分享个人的一些学习总结和经验,欢迎大家关注。文章目录1.选择排序2.代码解析3.效率分析1.选择排序我们会经常遇到对数据进行排序的问题,比如,一组学生成绩按照从大到小的顺序排名...
2020-02-06 13:47:53 338
原创 二分查找,教你如何提高搜索效率
二分查找,是程序员入门必会的一个高效搜索算法。本文将对二分查找,以及时间复杂度等概念进行讲解。1 什么是算法和时间复杂度在计算机科学中,算法是指在有限时间内解决一个问题的一系列确定的指令。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法的时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度...
2020-02-05 09:23:53 1636
原创 要理解递归,你先要理解递归
本文将介绍递归的概念和简单的例子,希望能够帮助读者理解计算机中难以理解的递归。1 什么是递归通常我们写出很多函数之后,这些函数是用来提供给其他地方调用完成一些事情的。比如我们有函数gcd用来计算两个数的最小公约数。如果我们要计算三个数的最小公约数呢?我们可以写一个新的函数gcd2,假设三个数为a,b,c,可以调用gcd(a,b)得到a和b的最小公约数ab,再调用gcd(ab,c...
2020-02-04 11:53:51 850
原创 C语言:基本语法汇总
本文将对计算机编程的入门语言——C语言中的基本语法,包括判断,循环,函数,结构体,数组等概念进行介绍讲解。1判断语句在生活中我们经常要做出选择,程序也是如此。购物时的标准,优惠券的折扣条件等,在代码中都需要if语句来进行判断。假如我们要判断一个正整数是偶数还是奇数,可以这样子写:其中if后面括号中的 x%2 == 0 是一个判断语句,当x%2的值等于0的时候,x%2==...
2020-02-03 14:57:20 10975
原创 c语言:从零开始的编程之旅
本文将对计算机编程的入门语言——C语言做简单讲解,包括: 编程工具devcpp的安装 C语言中的变量 C语言的运算 1 devcpp的安装C语言是计算机领域的入门编程语言。它跟我们平时所学的英语之类的语言有什么不同呢?由于计算机是一个没有感情的机器,它不能够理解我们说的话,活在自己的世界中。而计算机的世界,就是二进制的世界,所有的指令,都会转换成二...
2020-02-02 11:51:46 496
使用scrapy框架爬取拉勾网数据
2017-09-02
基于SSH框架的简易博客系统
2017-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人