自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 希尔排序(c++实现)

希尔排序是对插入排序的一种改进算法,在大规模数据量时可以将平均时间复杂度提升到O(nlogn)级别。它的思想就是进行分段排序,将数据分成多个子序列,将子序列进行排序,之后逐步减小序列的长度直到1,最终实现排序。希尔排序是一种不稳定的排序算法,即会改变相同元素的位置关系。步骤一:给定一个增量gap为数组长度的一半,然后创建一个循环,没次增量减半。步骤二:实现一个以gap值为基础的插入排序,即将插入排序中的1改为gap。最坏情况:O(n),数组有序。平均情况:O(nlogn)。

2024-08-27 16:15:26 181

原创 并查集(c++实现)

当我们在判断两个节点是否在同一个集合中,通常可以使用set或者map来实现,但是当一个节点对应多个节点时,我们就不得不增加映射关系,这样会使查找变得复杂。而并查集可以帮助我们决绝这类问题,它的主要功能就是:(1)构建有向无环图,将两个节点加入到一个集合中。(2)判断两个节点是否属于同一个集合。二.代码实现并查集的代码模板主要分为:初始化、查找节点、判断连通性、添加节点四部分。

2024-08-27 15:35:24 288

原创 插入排序(c++)

是一种简单直观的排序方法。通过从前到后遍历数组,找到当前位置元素在已排序数组中的位置进行插入,将大于当前位置的元素全部向后移动一位,腾出一个插入的位置给当前元素。平均情况下:需要进行部分比较和移动操作,时间复杂度为 O(n2)。最好情况:有序,O(n),只需要进行n-1次比较即可。插入排序(insert sort)最坏情况:元素倒序,O(

2024-08-26 18:22:32 215

原创 选择排序(c++)

(select sort)是一种简单直观的算法,其原理是从头到尾遍历数组,找出最小值的位置,然后与遍历起始位置的数值进行交换;遍历n-1次即可实现排序。原因在于,当选择最小元素并进行交换时,可能会将相等元素的相对位置改变。空间复杂度:O(1)。

2024-08-26 16:43:02 112

原创 冒泡排序(c++)

是一种稳定的排序算法,不改变元素之间的相对位置。通过重复遍历数组,比较两个相邻元素之间的大小关系,每一次遍历找出一个最大值,将它持续交换移动到数组的最右端。也可以选择逆序遍历,将最小值交换到最左端。是一种稳定的排序算法。即相等的元素在排序后不会改变相对顺序。原因在于,当两个相邻的元素相等时,冒泡排序不会交换它们的位置,从而保持了相对顺序的稳定性。冒泡排序(bubble sort)最好情况下:O(n)。

2024-08-26 16:33:29 195

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除