自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 希尔排序算法

希尔排序算法是插入排序的一种变种。只是这种算法,增加了一些随机因素。插入排序是整个数据是一组进行排序。希尔排序是把数据进行分组,进行排序,逐步减少组的数量,最后是一组,再进行一趟希尔排序。希尔排序的关键点举例说一下希尔排序, 以 6, 7, 4, 3, 8 为例2. 三组数据进行插入排序得到,4, 7, 6, 3, 83 . 缩小间隔 gap = gap / 2 = 1 , 这个时候就是一组数据(4, 7, 6, 3, 8)进行插入排序以下是python代码实现的希尔排序 复制运行结果如下:[3, 4,

2022-07-13 17:57:50 197

原创 堆排序算法

堆排序算法是一个基于完全二叉树形结构的排序算法。二叉树是需要抽象出来的,只是为了方便来理解排序的过程。堆排序算法有大根堆和小根堆, 这里我们以大根堆为例。对于堆排序来说,存在这样的特性根节点大于等于他的孩子节点。对于一个数组来说,怎么看成是一颗二叉树呢。数组是把二叉树每一层遍历后存储的一种形式。1.抽象出二叉树对于数组6, 7, 4, 3,8的树形结构可以表示如下。对于任何一个元素的下标i, 左孩子是2*(i+1)-1 下标所在的位置, 右孩子是 2*(i+1)所在的位置。数组的二叉树形式2.建立大根堆建立

2022-07-13 17:56:56 92

原创 快速排序算法

快速排序算法是一个典型的荷兰国旗问题。那什么是荷兰国旗问题呢,就是有三种旗子红,白,黑。 三种旗子在数组中乱序的,现在的问题是要把相同颜色国旗放到一起应该怎么做。比如说 0 -表示红色, 1 -表示白色, 2-表示黑色。有国旗的排列如下: 1, 0, 2, 1, 2, 0。期望把相同颜色的国旗放到一起: 0, 0, 1, 1, 2, 2那就设定两个指针,一个指向头 i, 一个指向尾 j。 然后 i向后移动,j 向前移动。 遇到红色的旗子放到前面,遇到黑色的旗子放到后面。快速排序就是按这种思路来,指定一个元素

2022-07-13 17:55:00 65

原创 二路归并排序算法

二路归并排序算法简单理解就是两两进行比较,然后把他们合并到一起。 通俗理解就是去买衣服的时候,经常会货比三家,看了一个店选两件衣服,然后又去另外一个店选了同款的两件衣服。看价格排序,或者性价比排序 一下,看哪个更便宜,或者性价比更高。 二路归并排序关键点:二路归并排序是不稳定的排序,时间复杂度o(n^2), 空间复杂度o(n)举一个例子看一下二路归并排序的过程:以数组 5,3,2,1 为例子 看一下用python是如何实现的 复制运行后输出结果:[1, 2, 3, 5]...

2022-07-13 17:52:38 3542

原创 插入排序算法

插入排序算法从字面上的理解就是把数据插入到一个已经排好序的队列中。朴素一点理解,就是在那里已经站了一排人,从矮到高排的,现在有一个人要按高矮排这个队列里。那应该插入到哪个位置呢,不知道啊,那就从最高的位置开始比较,一个个往前比较,然后插入到合适的位置。算法的关键点:插入排序算法是稳定性的排序算法,时间复杂度是o(n^2)。看一个简单的例子:5, 3, 2, 1 一趟插入排序是如何进行插入排序算法,第一个数认为是已经排好序的,从第二数 3 开始。开始比较时, tmp = 3, i = 1 记录当前的值与下标第

2022-07-13 17:45:20 176

原创 选择排序算法

冒泡排序算法是算法与数据结构中最基础的排序算法。学会这个算法是有必要,在2010年左右的时候,很多时候面试都会冒泡排序算法。那时候IT行业没现在这么卷,大部分都考察一下冒泡排序就OK了。现在去面试不问个leetcode的hard难度的级别题都不过瘾。那现在有必须在学习冒泡排序吗?当然有必要,基础算法必须掌握,体现你的技术热情,对走技术路线是有绝对的帮助的。冒泡排序就是排队一样,矮的排前面,高的排后面。 刚开始是乱序的,那就从第一个开始调整,把最高排到后面。排完这个之后,这个位置就被占用。那再从第一个开始,再

2022-07-13 17:44:16 44

原创 冒泡排序算法

冒泡排序算法是算法与数据结构中最基础的排序算法。学会这个算法是有必要,在2010年左右的时候,很多时候面试都会冒泡排序算法。那时候IT行业没现在这么卷,大部分都考察一下冒泡排序就OK了。现在去面试不问个leetcode的hard难度的级别题都不过瘾。那现在有必须在学习冒泡排序吗?当然有必要,基础算法必须掌握,体现你的技术热情,对走技术路线是有绝对的帮助的。冒泡排序就是排队一样,矮的排前面,高的排后面。 刚开始是乱序的,那就从第一个开始调整,把最高排到后面。排完这个之后,这个位置就被占用。那再从第一个开始,再

2022-07-13 17:42:59 190 1

空空如也

空空如也

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

TA关注的人

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