数据结构
阿觿学长0502
这个作者很懒,什么都没留下…
展开
-
数据结构——排序篇 导论(十种常见排序算法)
非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。时间复杂度:对排序数据的总的操作次数。稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。内执行时所需存储空间的度量,它也是数据规模n的函数。空间复杂度:是指算法在计算机。原创 2022-11-20 17:22:23 · 188 阅读 · 0 评论 -
数据结构——排序篇 快速排序
快速排序只是使用数组原本的空间进行排序,所以所占用的空间应该是常量级的,但是由于每次划分之后是递归调用,所以递归调用在运行的过程中会消耗一定的空间,在一般情况下的空间复杂度为 O(logn),在最差的情况下,若每次只完成了一个元素,那么空间复杂度为 O(n)。快速排序是在冒泡排序的基础上改进而来的,冒泡排序每次只能交换相邻的两个元素,而快速排序是跳跃式的交换,交换的距离很大,因此总的比较和交换次数少了很多,速度也快了不少。快速排序是一个不稳定的算法,在经过排序之后,可能会对相同值的元素的相对位置造成改变。原创 2022-11-20 17:12:56 · 259 阅读 · 0 评论 -
数据结构——每日一题(小试牛刀)
树的叶子结点个数 = 根节点数量1个 + 3 × 度为四的结点数 + 2 × 度为三的结点数 + 度为二的结点数 = 1 + 3 + 2 + 2 = 8.语句②③执行次数f(n), 2^f(n)〈=n,则f(n)原创 2022-11-17 22:46:08 · 260 阅读 · 0 评论 -
数据结构——树 小试牛刀1
D:树的度为4只能说明存在某结点正好也是最多有4个孩子结点,而它的叔叔节点可能也有4个孩子,那么这一层就有了8个节点。性质3:若在任意一棵二叉树中,有n0个叶子节点,有n2个度为2的节点,则必有n0=n2+1。性质4:具有n个节点的完全二叉树深为log2x+1(其中x表示不大于n的最大整数)除最后一层外,每层的结点数是1,最终该树的高度为n-3。性质1:二叉树的第i层上至多有2i-1(i≥1)个节点。性质2:深度为h的二叉树中至多含有2h-1个节点。C. 第i层上至多有4(i-1)个结点。原创 2022-11-17 22:10:48 · 351 阅读 · 0 评论 -
数据结构——排序篇 归并排序
归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。和选择排序一样,归并排序的性能不受输入数据的影响,但表现比选择排序好的多,因为始终都是 O(nlogn) 的时间复杂度。代价是需要额外的内存空间。比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置;自上而下的递归(所有递归的方法都可以用迭代重写,所以就有了第 2 种方法);设定两个指针,最初位置分别为两个已经排序序列的起始位置;原创 2022-11-17 20:01:20 · 204 阅读 · 0 评论