数据结构与算法
文章平均质量分 70
基础数据结构
心皿月
这个作者很懒,什么都没留下…
展开
-
排序算法——归并排序
目录:🍉算法思想🥝算法描述🍒实例具体步骤:代码实现:🍍算法效率分析。归并排序(Mergesort)是建立在归并的有效操作上进行排序,主要采用分治法将已有序的子序列合并,得到完全有序的序列。即先让每一小段有序,再让小段之间变得有序。将两个有序段归并为一个有序段,称为二路归并;有序段称为归并段。分治法将一个大问题成一些小的问题然后递归求解,而的阶段则将分的阶段得到的各答案“修补”在一起,即分而治之。如下图所示。......原创 2022-07-16 23:54:35 · 4447 阅读 · 0 评论 -
排序算法——快速排序
目录:🚏基本思想:🦼算法描述:🛴实例:思路步骤:具体实现步骤:代码实现:🛹算法性能分析快速排序主要是通过选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边。依次递归,直到整体的序列都有序。对序列 26,53,67,48,57,13,49,32,60,50进行快速排序①选基准,一般选择左边界作为基准②先从后向前,找到比基准小的值时停止,将该high位置的元素放到空位置(low位置)③从前向后找比基准大的值位置停止,将此时low位置元素放到high位置④重复②③步骤...原创 2022-07-12 17:35:09 · 909 阅读 · 1 评论 -
排序算法——冒泡排序
🍉基本思想冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后,依次比较相邻元素的值,若发现逆序(前者大于后者)就进行交换,使值较大的元素逐渐从前向后移动。🌰实例:原始数组:3 , 9 ,-1 , 10 ,20第一趟排序:(1)3, -1, 9, 10, 20(2)3,-1, 9, 10, 20(3)3,-1, 9,10, 20(4)3,-1, 9,10, 20第二趟排序:(1)-1 , 3, 9, 10, 20(2)-1, 3, 9,原创 2022-04-30 10:42:12 · 461 阅读 · 4 评论 -
排序算法——插入排序
目录🎨基本介绍🎹算法思想🏸实例🎠思路分析🪁代码实现🛹算法性能分析🚀时间复杂度🛴空间复杂度🛸稳定性🎨基本介绍插入式排序属于内部排序法,是对待排序的元素以插入的方式寻找该元素的适当位置,以达到排序的目的。🎹算法思想插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,在有序表中从后往前进行比较,将它插入到有原创 2022-05-08 23:44:46 · 9723 阅读 · 19 评论 -
排序算法——堆排序
目录1️⃣概念回顾二叉树完全二叉树大根堆小根堆2️⃣堆排序基本介绍:算法思想:实例:思路步骤:代码实现:算法性能分析:堆排序是利用堆这种数据结构所设计的一种排序算法。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。...原创 2022-07-15 20:40:39 · 3645 阅读 · 1 评论 -
排序算法——选择排序
目录🐾基本介绍🌞算法思想:🌰实例:⛅思路分析:🌈总结:🛴代码实现:🛹算法性能分析🍕时间复杂度🍧空间复杂度🍰稳定性🐾基本介绍选择排序(select sorting)也属于内部排序法,是从待排序的数据中,按指定的规则选出某一元素,再按照规定交换位置后达到排序的目的。🌞算法思想:每一次从待排序的数据元素中选出最小(或最大)的一个元素,将元素存放在序列的起始位置(即与待排序列的第一个元素的位置进行交换)。然后再从剩余的未排序元素中寻找最小(或最大)的元素,原创 2022-05-01 08:00:00 · 6902 阅读 · 4 评论 -
排序算法——希尔排序
目录🛴基本介绍算法思想🛹实例思路分析代码实现🛵算法性能分析🛴基本介绍希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为见效增量排序。希尔排序的时间复杂度比直接插入排序的时间复杂度小,他与直接插入排序的不同在于它会优先比较距离较远的元素。算法思想希尔排序是按照一定的增量进行分组排序,对每组使用直接插入排序算法排序;随着分组个数的减少,每组中元素就会越来越多,当增量减少为1时,排序结束。🛹实例原始数组:[8,9,1,7..原创 2022-05-17 08:00:00 · 2251 阅读 · 4 评论