logn
一、简述红黑树是一种特殊的二叉树,并且是优秀的自平衡查找树,下图为红黑树的示例:红黑树具有以下几大特性:1、根节点为黑色。2、所有节点都是黑色或红色。3、所有叶子节点(Null)都是黑色
请注意,本文编写于 192 天前,最后修改于 192 天前,其中某些信息可能已经过时。 归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治策略。递归的将数组两两分开直到只包含一个元素,然后将数组排序合并,最终合并为排序好的数组
03-A-1:从静态到动态2:50 03-A-2:从向量到列表2:36 03-A-3:从秩到位置3:44 欢迎回来 第三章的主题是列表 与向量一样 列表也是典型的最基本的一类 所谓的线性结构 但是正如我们马上要看到的 列表结构与向量结构 在几乎所有的方面都是对称的、互补的 因此它的特点也十分的鲜明 不同数据结构所提供的操作接口 形形**不尽相同 但是总体而言 无非分为静态和动态的两种 前者是所谓的读取式 也就是说 只是获取数据项的内容 而不对它进行修改 比如说 典型的像向量的get和search操作 而后一种呢 是所谓的写入式的操作 也就是说 确实会对数据结构的局部 乃至整体进行修改 比较典型的是 向量的insert和remove操作 相应地 那数据元素在数据结构中的 存储与组织方式呢 也可以分为静态的和动态的两种 前者是以向量为代表的 具体来说 在这个数据结构的生命期内 数据区是在创建之初统一确定的 因此其中元素在逻辑上的次序 可以与它们在物理上存储的次序 直接联系起来 存在一一对应的关系 根据秩 能直接访问到这个元素 因此在静态操作方面 这类数据结构体现出效率上的很大的优势 比如说 get只需要O(1)的时间 如果按有序排列的话 search只需要logn的时间 但是反过来 这类结构在动态操作方面 却显得力不从心 回顾一下 无论是insert还是remove 都需要将当前这个元素的后继 向后移动一格 腾出一个空位 或者反过来 有的时候需要向前递补 填补一个空位 而最坏情况乃至平均情况下 我们都需要O(n)的时间 为了改变在动态操作方面的不足 我们应该相应地改用动态的存储方式 也就是说 各个元素所占的物理空间 是在生命期内动态地、逐步地分配 这里的代表就是我们这一章的主题:列表
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用。 该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边
最小堆/最大堆如果两个堆进行合并,时间复杂度较高,左偏树是可合并的二叉堆,首先满足所有的堆的性质,其外,各种操作时间复杂度都是O(logN)。 左偏树的树节点需要保存的信息有: 左偏就是每个节点的左子节点的len不小于右子节点的len(但并不代表左子节点数一定不小于右子节点数),那么可知左偏树中一个节点的距离就是右儿子距离+1(或没有右儿子),且左右子树都是左偏树。 合并树A和树B的操作方法如下: 1.如果A或B有一个是空树,返回另一个
一、简述红黑树是一种特殊的二叉树,并且是优秀的自平衡查找树,下图为红黑树的示例:红黑树具有以下几大特性:1、根节点为黑色。2、所有节点都是黑色或红色。3、所有叶子节点(Null)都是黑色
我只是想确认我的答案,看看是否有更快的方法。 如果有一个已排序的 nxn 矩阵,那么搜索它的**方法是什么,它的复杂性是多少?- 对行进行二进制搜索,然后对列进行二进制搜索。O(logN)
快速排序法的性能是什么? 答:我们来分析一下快速排序法的性能。 快速排序的时间性能取决于快速排序递归的深度,可以用递归树来描述递归算法的执行情况。 如图所示,它是 {50109030 7040806020}在快速排序过程中的递归过程
快速排序最坏时间复杂度和平均时间复杂度的区别是什么? 答:其中 是一趟快排需要的比较次数,一趟快排结束后将数组分成两部分 和. 最好时间复杂度: 核心点:最好情况下,每一次划分都正好将数组分成长度相等的两半. 最坏时间复杂度: 核心点:最坏情况下,每一次划分都将数组分成了0和n-1两部分. 平均时间复杂度: 核心点:任意一种划分情况出现的概率都相等. 所有的划分情况为:. 综上 :快速排序最好时间复杂度为 最坏时间复杂度为 平均时间复杂度为. 快速排序的空间复杂度是多少? 答:快速排序只是使用数组原本的空间进行排序,所以所占用的空间应该是常量级的,但是由于每次划分之后是递归调用,所以递归调用在运行的过程中会消耗一定的空间,在一般情况下的 空间复杂度 为 O (logn) ,在最差的情况下,若每次只完成了一个元素,那么空间复杂度为 O (n) 。什么是快速排序的最坏情况? 答:什么是快速排序的最坏情况,那就是, 对于每一个区间,我们在处理的时候,选取的轴刚好就是这个区间的最大值或者最小值 。 比如我们需要对 n 个数排序,而每一次进行处理的时候,选取的轴刚好都是区间的最小值
排序算法根据是否需要访问外存,分为内部排序和外部排序。 内部排序是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列。 外部排序是指大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,来达到排序整个文件的目的
