随笔分类 - 数据结构与算法
摘要:更多内容,前往 IT-BLOG 队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。 数组模拟环形队列 【1】队列本身是有序列表,若使用数组的结构来存储队列数据,队列数组的声明如下,其中 maxSize 是该队列的最大容量; 【2】因为队列的输入输出是分别从头和尾来处理的,因此需要两
阅读全文
摘要:跟多内容,前往 IT-BLOG 栈的一个实际需求:请输入一个表达式,计算式:[7*2*2-5+1-5+3-3]点击计算【如下图】请问:计算机底层是如何运算得到结果的? 注意不是简单的把算式列出运算,因为我们看这个算式 7*2*2-5..., 但是计算机怎么理解这个算式的(对计算机而言,它接收到的就
阅读全文
摘要:更多内容,前往 IT-BLOG 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任
阅读全文
摘要:更多内容,前往 IT-BLOG 一、稀疏数组的定义 稀疏(sparsearray)数组:可以看做是普通数组的压缩,但是这里说的普通数组是值无效数据量远大于有效数据量的数组。 稀疏数组的应用场景:五子棋程序,有存盘退出和续上盘的功能,将五子棋盘转化成二维数组如下所示:分析上述问题:因为该二维数组默认的
阅读全文
摘要:更多内容,前往 IT-BLOG 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。链表是有序的列表,但是它
阅读全文
摘要:更多内容,前往 IT-BLOG 它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 一、什么是堆 【1】堆是一个完全二叉树,特点是从上往下,从左往右以次排列的;【2】在堆的数据结构中,堆中的最大值总是位于根节点,所有父节点都满足大于等于其子节点; 我们对堆
阅读全文
摘要:更多内容,前往 IT-BLOG 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)
阅读全文
摘要:快速排序(QuickSort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将需要排序的数据分成独立两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按照此方法对这两组数据分别进行快速排序,这个排序过程可以递归进行,以此达到整个数据变成有序序列。 一、基本介绍 快速排序是实践中的一种
阅读全文
摘要:更多内容,前往 IT-BLOG AVL (平衡二叉树:追求"完全平衡")树的另一种变种是红黑树(Red-Black-Tree:只要求部分达到平衡)其就是一个二叉查找树。对红黑树的操作在最坏情形下花费 时间。红黑树是具有下列着色性质的二叉查找树:<br />【1】每个节点或者是黑色,或者是红色。<br
阅读全文
摘要:更多内容,前往 IT-BLOG 一、前言 如何在分布式集群中生产全局唯一的 ID?【方案一】UUID:UUID是通用唯一识别码 (Universally Unique Identifier),在其他语言中也叫GUID,可以生成一个长度 32位的全局唯一识别码。UUID 虽然可以保证全局唯一,但是占3
阅读全文
摘要:更多内容,前往 IT-BLOG 选择排序是一种简单直观的排序算法,其基本原理,对于一组记录的数据,通过第一次比较得到最小的记录,然后将该记录与第一条记录的位置交换;接着对不包含第一个以外的记录进行比较,得到最小记录并与第二个记录进行位置交换;重复该过程,知道进行比较的记录只有一个时为止。 以数组 {
阅读全文
摘要:对于给定的一组记录,初始时假设第一个记录自成一个有序序列,其余记录为无序序列。接着从而个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一条记录插入到有序序列中为止。 例如:数组 {38,65,97,76,13,27,49}第一步插入38以后:[38]65 97 76
阅读全文
摘要:冒泡排序顾名思义就是整个过程就像气泡一样往上升,单向冒泡排序的基本思想是(假设由小到大排序):对于给定的 n 个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较和换位后,n 个记录中的最大记录将位于第 n位;然后对前(n-1)个记录进行第二轮比
阅读全文