2022年04月18日
|
阅读量
-
堆排序是利用堆的数据结构而设计的一种排序算法。堆是一种完全二叉树,它具有以下性质:即每个节点的值总是大于(或小于)它的父结点的值。
我们会用到两种堆:
大顶堆:每个节点都大于或等于它的子节点的值,称为大顶堆。
小顶堆:每个节点都小于或等于它的子节点的值,称为小顶堆。
每个列表都可以按下标顺序表示为一个二叉树,...
阅读更多
2022年04月10日
|
阅读量
-
快速排序的基本思想是:通过每一趟排序,将列表分为两部分,其中一部分元素值比另一部分元素值都要小,再按这种方法对这两部分分别进行快速排序。最终使整个列表达到有序。
算法步骤
从列表中选一个元素的值作为基准值。
对列表进行排序,比基准小的排在基准前面,比基准大的排在后面。
递归重复步骤 1、2, 对...
阅读更多
2022年04月05日
|
阅读量
-
归并排序是采用分治法的一个典型应用。将列表分为两个子序列,对每个子序列再进行分治,直到每个序列元素个数为1,则这个序列必定是有序的,一步步合并每个子序列,最终整个列表达到有序的状态。
算法步骤
把长度为 n 的列表分成两个长度为 n/2 的子序列。
对这两个子序列分别采用归并排序。
将两个排序好...
阅读更多
2022年04月04日
|
阅读量
-
标点符号
1). 只有中文或中英文混排中,一律使用中文/全角标点。
2). 中英文混排中如果出现整句英文,则在这句英文中使用英文/半角标点。
3). 中文标点与其他字符间一律不加空格。
正确:有:Apple、Android、诺基亚
错误:有:Apple 、 Android 、 Nokia
4). ...
阅读更多
2022年04月01日
|
阅读量
-
希尔排序又称缩小增量排序,是由Donald.L.Shell于1959年提出而得名。先将原列表按一定增量gap分组,然后对每一组进行插入排序。之后缩小增量gap,再对每组进行排序,直到增量gap缩小为1,再进行排序后即得到最后的有序列表。
比如,原列表为 R(R0, R1, R2, R3, R4, R5, R6,...
阅读更多
2022年04月01日
|
阅读量
-
插入排序中将原列表分为两部分:有序区和无序区,插入排序就是从无序区取出一个元素,按照它的大小插入到有序区内相应位置。
算法步骤
开始时列表中所有元素都在无序区,取第一个元素,它可以被认为是已经有序。
再从无序区取一个元素A,从后向前循环比较有序区的元素,如果有序区的元素较大,则将其向后移动一个位置。...
阅读更多
2022年03月31日
|
阅读量
-
选择排序每次选择一个未排序列表中最大/最小的元素,放到有序位置。
算法步骤
从列表中找到最小的元素,将它放在第一个位置。
从剩下的元素中找到最小的元素,将它放在第二个位置。
重复步骤1、2,直到所有数据都有序。
动图演示
代码示例
#define SORT_OK (0)
#de...
阅读更多
2022年03月31日
|
阅读量
-
冒泡排序是在每次扫描列表时通过比较相邻两个元素的大小,如果顺序不对就交换过来。就像冒泡一样,每扫描完一次整个列表会将最大/最小的元素排到列表最后。
算法步骤
依次比较相邻两个元素的大小,如果第一个元素大于第二个,就交换两个元素。这样遍历一遍后会把最大的一个元素排列到列表最后。
重复步骤1,直至整个队...
阅读更多