摘要: Red-Black Tree | Set 1 (介绍) 红黑树是一种平衡二叉树,其每个结点满足以下条件: 为什么选择红黑树? 大部分BST操作(e.g. 搜索,最大,最小,插入,删除…等)的时间复杂度为O(h),h为树的高度。对于一颗歪斜的BST而言,其时间复杂度可能会变成O(n) 。如果我们想确保 阅读全文
posted @ 2017-11-08 15:49 涛声依旧~ 阅读(1207) 评论(0) 推荐(0) 编辑
摘要: B-树 什么是B-树? B树是一种查找树,我们知道,这一类树(比如二叉搜索树,红黑树等等)最初生成的目的都是为了解决某种系统中,查找效率低的问题。B树也是如此,它最初启发于二叉搜索树,二叉搜索树的特点是每个非叶节点都只有两个孩子节点。然而这种做法会导致当数据量非常大时,二叉查找树的深度过深,搜索算法 阅读全文
posted @ 2017-11-08 15:48 涛声依旧~ 阅读(1011) 评论(0) 推荐(0) 编辑
摘要: 基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 分而治之 可以看到 阅读全文
posted @ 2017-11-08 00:03 涛声依旧~ 阅读(1407) 评论(0) 推荐(0) 编辑
摘要: 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。 基本思想 希尔排序是把记录按 阅读全文
posted @ 2017-11-07 23:59 涛声依旧~ 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 预备知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于 阅读全文
posted @ 2017-11-07 23:56 涛声依旧~ 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 先定义个交换数组元素的函数,供排序时调用 简单选择排序(O(n^2)) 简单选择排序是最简单直观的一种算法。 基本思想:每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。 在算法实现时,每一趟确定最小元素的时候会通过不断地比较交换来使得 阅读全文
posted @ 2017-11-07 23:43 涛声依旧~ 阅读(6275) 评论(0) 推荐(0) 编辑
摘要: 排序分类: 外排序:需要在内外存之间多次交换数据 内排序: 插入类排序 直接插入排序 希尔排序 选择类排序 简单选择排序 堆排序 交换类排序 冒泡排序 快速排序 归并排序 归并排序 插入类排序 直接插入排序 希尔排序 选择类排序 简单选择排序 堆排序 交换类排序 冒泡排序 快速排序 归并排序 归并排 阅读全文
posted @ 2017-11-07 18:47 涛声依旧~ 阅读(3132) 评论(0) 推荐(1) 编辑
摘要: Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. 题意:给定一个有序的单向链表,将其转换成平衡的二叉搜索树。 思路:二分法+快慢指 阅读全文
posted @ 2017-11-07 11:13 涛声依旧~ 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目要求 Given a linked list, return the node where the cycle begins. If there is no cycle, returnnull. Follow up: Can you solve it without using extra sp 阅读全文
posted @ 2017-11-06 23:29 涛声依旧~ 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 事务 所谓事务是用户定义的一个数据库操作序列,这些操作要么全做,要么不做,是一个不可分割的工作单位。例如,在关系数据库中,一条或一组SQL语句、整个程序都可以是一个事务。 事务和程序是两个概念,一个程序中可以有多个事务。 在SQL中,事务定义的三条语句: BEGIN TRANSACTION;(开始) 阅读全文
posted @ 2017-11-02 23:41 涛声依旧~ 阅读(1098) 评论(0) 推荐(0) 编辑