2017-04-14 LEo
最近由于工作原因,需要自己实现一个类似队列的数据结构,所以想写篇文章记录并总结下队列的相关内容,主要有以下4点: 1)队列的定义 2)队列的举例 3)队列的基本操作 4)队列的实现(go) 1)队列的定义 队列,又称为伫列(queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为堆尾(rear))进行插入操作,即enqueue,在前端(称为队头(front))进行删除操作,即dequeue。队列的操作方式和栈类似,唯一的区别在于队列只允许新数据在后端进行添加。 继续阅读 »
2017-02-11 Kevin
Mysql索引 - B树/B+树 介绍 B树/B+树介绍 B树 B+树 索引介绍 MylSAM 索引 InnoDB 索引 继续阅读 »
2016-09-04 crane-yuan
在了解堆排序之前,我们有必要清楚“什么是堆呢?”。 堆(英语:Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。 堆的逻辑定义: 堆的实现通过构造二叉堆(英语:binary heap),实为二叉树的一种;由于其应用的普遍性,当不加限定时,均指该数据结构的这种实现。这种数据结构具有以下性质。 任意节点小于(或大于)它的所有后裔,最小元(或最大元)在堆的根上(堆序性)。 堆总是一棵完全树。即 继续阅读 »
2013-05-26 Zhang zhengzheng
《编程珠玑》这本书读完感觉很诡异,在读的过程中感觉很有收获,但是却说不清从书中获得了什么,好像什么也没读懂。说实话,很难对这本书归类,有时它告诉你的是实际操作的性能问题,有时又在讲算法或者数据结构。不过确切的说,它告诉我们的是一种无招胜有招的境界。无论是实际操作、算法还是数据结构都是在为项目服务的,我们的目的只有一个,那就是完成项目。 一个项目与一个科研课题的区别就是它需要被实践,需要一种行之有效的解决方案。在一个系统被部署到实际环境中时,有时可能需要它无比精准,有时是快速运行,有时是超低成本,或者也有可能是兼而有之的权衡。此时工程师就需要调整一切可以调整的东西去满足这些需求,这些东西自然就是硬件环境、算法、数据结构了。作者Jon 继续阅读 »
2013-06-29 Robert Zhang
分析:用什么样的数据结构来表示投票有很多选择;如果选择了合适的数据结构,不但可以提高时间效率还可以简化编程。more ```cpp include include include include include include 继续阅读 »
2018-03-01 石头人m
牛客网编程练习-剑指offer,python实现。 github链接 1.【链表】从尾到头打印链表 输入一个链表,从尾到头打印链表每个节点的值。 继续阅读 »
2016-12-17 jude
下面用一句话来描述今年作为程序员的我: 我享受编程的乐趣,也想用自身所学,做个有一点受众的产品。 以前对算法和数据结构只有零零碎碎的印象,年初有幸看到《算法第 4 版》这本书,对算法和数据结构有了整体的认知。2、3月份那段时间每天一边细看,一边手写书上的代码加深理解,还顺便学习 java 。以我粗浅的眼光来看, java 的接口和泛型对团队合作来说是好东西。 继续阅读 »
2016-09-06 JustWe
ArrayList 和 LinkedList 是在开发过程中 常用的数据结构 分别代表了数组和链表,其实本身的实现都非常简单,所以Source Code Read 就先从这两个开始。 ArrayList ArrayList 从名字上就可以看出这个容器的本质,是用一个数组反复的进行自增实现的,ArrayList几乎是最经常被使用的List的实现了,平时可以使用线性数据结构的时候,通常都会选择ArrayList。但是容器的选取也要考虑到实现的方式和你需要的应用。比如说数组长于索引,弱于扩容和删除,但是链表长于扩容和删除,但是寻找某个具体节点的时候,没办法靠基址寻址来实现,而是要用指针不断的 继续阅读 »
2018-09-06 石头人m
牛客网编程练习-剑指offer,语言:c++11(clang++ 3.9)。 1.【数组】二维数组中的查找 继续阅读 »
2018-01-10 geekspeng
Python 是一款易于学习且功能强大的编程语言。 它具有高效率的数据结构,能够简单又有效地实现面向对象编程。Python 简洁的语法与动态输入之特性,加之其解释性语言的本质,使得它成为一种在多种领域与绝大多数平台都能进行脚本编写与应用快速开发工作的理想语言。这篇文章主要介绍Python在Mac OS X、Windows和Linux系统的安装,为以后python的学习做准备。 继续阅读 »