算法
文章平均质量分 59
常见的算法笔记,若有错误或者其他建议,欢迎指出。
Ashimar_ZHZ
iOS 画界面的。
展开
-
归并排序——有序序列的合并
有序序列的合并(Merge of Sorted Sequences)是归并排序的核心步骤之一。其目的是将两个已经排序的序列合并成一个新的有序序列。这个过程在归并排序中非常重要,因为归并排序通过递归地将序列分割成子序列,然后合并这些子序列来实现排序。有序序列的合并是稳定的,因为在合并过程中,相同元素的相对位置不会改变。生命不息,学习不止,若有不正确的地方,欢迎指正。原创 2024-07-03 11:38:53 · 370 阅读 · 0 评论 -
归并排序——二路归并排序
二路归并排序(Merge Sort)是一种基于分治法的排序算法,通过将数组递归地拆分成两部分,分别排序后再合并,从而实现整个数组的有序。二路归并排序具有稳定性和高效性,是一种非常经典的排序算法。归并排序是一种稳定的排序算法,因为在合并时保持了相同元素的相对顺序。原创 2024-06-06 18:00:21 · 363 阅读 · 0 评论 -
选择排序——堆排序
堆排序(Heap Sort)是一种基于二叉堆(Binary Heap)数据结构的比较排序算法。它将待排序的数组构造成一个堆,分为最大堆和最小堆,常用的是最大堆。通过反复取出堆顶元素(即最大元素)并调整堆结构来达到排序的目的。堆排序是一种不稳定的排序算法,因为在堆化过程中,元素的相对位置可能会发生改变。生命不息,学习不止,若有不正确的地方,欢迎指正。原创 2024-06-06 17:21:42 · 307 阅读 · 0 评论 -
插入排序——表插入排序
表插入排序(Table Insertion Sort)是一种基于插入排序的排序算法,它通过维护一个已排序的索引表来加速插入操作。在标准插入排序中,每次插入一个新元素时,需要在已排序数组中找到合适的位置并进行元素移动。而在表插入排序中,通过构建一个索引表,可以直接找到元素应该插入的位置,从而减少实际元素移动的次数。原创 2024-06-05 18:16:56 · 294 阅读 · 0 评论 -
插入排序——折半插入排序
折半插入排序(binary insertion sort)是对插入排序算法的一种改进,由于排序算法过程中,就是不断的依次将元素插入前面已排好序的序列中。由于前半部分为已排好序的数列,这样我们不用按顺序依次寻找插入点,可以采用折半查找的方法来加快寻找插入点的速度。时间复杂度:O(n²)(比直接插入算法明显减少了关键字之间比较的次数,因此速度比直接插入排序算法快,但记录移动的次数没有变)空间复杂度:O(1)原创 2023-12-13 18:24:08 · 474 阅读 · 0 评论 -
选择排序——直接选择排序
直接选择排序:(以重复选择的思想为基础进行排序)原创 2023-09-11 17:52:05 · 462 阅读 · 0 评论 -
交换排序——冒泡排序、快速排序
交换排序就是通过比较交换实现排序。分冒泡排序和快速排序两种。原创 2023-09-08 00:12:15 · 456 阅读 · 0 评论 -
插入排序——希尔排序
希尔排序,插入排序原创 2023-09-07 16:20:20 · 305 阅读 · 0 评论 -
插入排序——直接插入排序
直接插入排序,排序算法原创 2023-09-07 16:00:14 · 332 阅读 · 0 评论 -
排序算法概述
将一个文件的记录按关键字不减(或不增)次序排列,使文件成为有序文件,此过程称为排序。若排序后,相同关键字的记录不保持它们原来的相对次序,则此排序方法为不稳定排序;若排序后,相同关键字的记录保持它们原来的相对次序,则此排序方法为稳定排序;排序的稳定性由排序方法决定,与原始序列无关。原创 2023-09-07 15:51:52 · 739 阅读 · 0 评论 -
算法的概述
常数O(1),对数阶O(log2n),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n2),多项式阶O(nC),指数阶O(Cn)解决同一问题的算法可以有多种。我们希望从中选出最优的算法,效率高或者存储空间小。为此,需要对算法进行评估,分析。估算算法空间复杂度时,一般只分析辅助变量所占用的空间。算法执行时所占用的存储空间,通常是问题规模的函数。算法运行时需要的总步数,通常是问题规模的函数。原创 2023-09-07 15:30:40 · 425 阅读 · 0 评论