数据结构
文章平均质量分 71
Aries66666
While the world sleeps , you dream.
展开
-
已知树中非叶子节点的度数和数量,如何计算树中叶子节点的个数?
树的一些定义1、一棵树的度树指其中节点的度数最大值。2、一个节点的度数为该节点的子节点数量,显然叶子节点度数为0。3、树中的边和节点的关系有:节点数=边数+1。也就是说每条边代表一个度数,而树的根节点例外,所以树的总节点数=总度数+1。示例1、节点 A 的度数为3,节点 C 的度数为1,节点 F 的度数为0。2、这棵树的度数为 A 节点的度数,为3。题目已知一棵树中度数为1的节点有4个,度数为2的节点有3个,度数为3的节点有2个,度数为4的节点有2个。则该树中有多少个叶子结点?原创 2021-08-28 22:46:01 · 1611 阅读 · 1 评论 -
猴子排序
基本思想 把一个无序的数组进行乱排序,然后看其是否会有序,有可能一次之后就有序了,也有可能很多次后依然无序。 最佳情况 O(n)O(n)O(n),平均 O(n∗n!)O(n*n!)O(n∗n!),最坏可执行直到世界的尽头。原创 2021-08-20 22:22:21 · 296 阅读 · 0 评论 -
排序算法之基数排序
简介 基数排序(radix sort)属于 “分配式排序”(distribution sort),又称 “桶子法”(bucket sort)或 bin sort, 顾名思义,它是通过键值的部分信息,将要排序的元素分配至某些"桶"中,以达到排序的作用, &nbs原创 2021-08-19 22:26:45 · 580 阅读 · 0 评论 -
排序算法之桶排序
简介 **桶排序(Bucket sort)**或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里,每个桶子再个别排序,有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序。 桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间 Θ(n)Θ(n)Θ(n)原创 2021-08-16 21:10:31 · 157 阅读 · 0 评论 -
排序算法之计数排序
简介 计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。 它的优势在于在对一定范围内的整数排序时,它的复杂度为 O(n+k)O(n+k)O(n+k)(其中 k 是整数的范围),快于任何比较排序算法。原创 2021-08-13 22:29:00 · 322 阅读 · 0 评论 -
排序算法之堆排序
简介 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。 堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即父节点结点的键值或索引总是小于(或者大于)它的子节点。堆的概念 在介绍堆排序之前,简单介原创 2021-08-11 22:57:54 · 3109 阅读 · 1 评论 -
排序算法之快速排序
简介 快速排序(QuickSort)是对冒泡排序算法的一种改进。 快速排序通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。基本思想 &n原创 2021-08-01 22:55:44 · 494 阅读 · 0 评论 -
排序算法之归并排序
简介 归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。基本思想 &nb原创 2021-07-30 22:40:26 · 877 阅读 · 0 评论 -
排序算法之希尔排序
简介 希尔排序(Shell Sort)是插入排序的一种,又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排原创 2021-07-28 23:50:04 · 151 阅读 · 0 评论 -
排序算法之插入排序
简介 插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。 插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表,进行待插入位置查找,原创 2021-07-16 23:01:53 · 381 阅读 · 0 评论 -
排序算法之选择排序
简介 选择排序(Selection sort)是一种简单直观的排序算法。 它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。 &n原创 2021-07-15 22:53:38 · 92 阅读 · 0 评论 -
排序算法之冒泡排序
简介 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 &原创 2021-07-12 23:01:33 · 132 阅读 · 0 评论 -
睡眠排序
基本思想 睡眠排序算法是一种比较另类有趣的排序算法,其核心思想与多线程、CPU调度机制相关,是通过多线程让每一个数据元素睡眠一定的时间,睡眠时间要和自身数据大小存在一定的规律,睡眠时间短的先进行输出,睡眠时间长的后输出,从而实现数据有序输出。缺陷 (1)当数据很大时,会睡眠很长时间,程序运行时间较长,效率比较低。原创 2021-07-11 22:56:29 · 261 阅读 · 0 评论