自定义博客皮肤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)
  • 收藏
  • 关注

原创 小菜鸟的算法学习笔记——快速排序

对A中的元素从p遍历到r-1,一旦遇到了比A[r]小的数,就需要将i往右移一格(因为i最初在p-1的位置),随后将这个比A[r]小的数与A[i]交换,这样就可以保证i元素的功能正常。当遇到比A[r]大的数时,跳过循环,进行下一个遍历。因此需要选用随机化函数,生成一个在p-r之间的随机数,将这个随机数所处位置的值与A[r]进行交换,将新的A[r]作为partition函数内部的参考值。1、从A[p,r]中选出一个q,使得A[p,q-1]中的元素均小于A[q],A[q+1,r]中的元素均大于A[q];

2023-09-02 08:58:57 126 1

原创 小菜鸟的算法导论学习笔记——最大堆排序

此时最右下角的元素是最大的元素,将其删除(pop),对0号根节点使用维护堆函数,新的0号根节点又是最大的数。加入数的根节点是i(从1开始计算),那么它的父节点、左孩子和右孩子的下标则为i/2,2i,2i+1。思路:从一个给定的下标i开始,让i节点符合最大堆的性质(在根节点和子结点中找出更大的值),逐级往下,直到子节点达到(或超过)堆元素的上限时停止。思路:一般从(n-1)/2(数组从0开始计数,此时该节点是从下往上的第一个根节点,往后全都是叶节点)开始到0,每次都执行一次维护堆函数。

2023-08-30 14:37:12 67

原创 小菜鸟的算法导论学习笔记——最大子数组问题(分治策略)

因为如果在函数体外定义了,每次都只是对同一个参数进行复制,会丢失递归前的情况!这里提前定义了一个max_subarray类型的名为cross的结构体,max_subarray类型的结构体包含三个信息:最大字数组的下限、上限与子数组各个元素之和。2、如果不想通过定义一个结构体的方式,实现函数可以返回多个数值的情况,也可以直接定义一个void函数,不过函数的形参要多添加几个,而且注意是要引用!最大子数组问题,指给定一个数组A,寻找该数组中的一个最大非空连续子数组,使得该子数组的各元素之和最大。

2023-08-27 10:37:21 46

原创 小菜鸟的算法导论学习笔记——分治排序

小菜鸟的算法导论学习笔记——分治排序

2023-08-23 23:46:31 76

原创 小菜鸟的算法导论学习笔记——插入排序

小菜鸟也开始写文章了w,非科班,个人基础属于是很久以前上过了C++与数据结构的课,大部分东西都忘了,近期想学习编程,经同学推荐开始学习基本的算法知识,以下内容均来自于《算法导论》。1、24行的auto key可以改为int,如果是int类型的数据排序的话,但是如果换成。2、用数组的形式会显得更加简洁,但不足之处在于无法控制数组的大小。2、25行与第j个元素对比的。例题1、插入排序的实现。

2023-08-23 21:50:29 45

空空如也

空空如也

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

TA关注的人

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