自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法导论第十三章笔记

红黑树红黑树是一种特定类型的二叉树,它是在计算机科学中用来组织数据比如数字的块的一种结构。红黑树也是一种二叉搜索树,它拥有二叉搜索树的所有特点,任意节点的左孩子都要小于该节点的key,任意节点的右孩子大于该节点的key,一个节点储存了左孩子,右孩子,父亲指针,和关键字key,除此之外增加了节点颜色color,红黑树每一个节点作为根节点到底层任意路径中节点color黑色的数量都是相等的。当然增加了...

2020-03-17 13:16:21 127

原创 算法导论第十一章笔记

直接寻址法用一个数组T来做为槽来记录U对应关键字k所对应元素当关键元素相等有冲突时可用链表解决问题除法散列表通过关键元素k除以m取余,再将关键字k映射到m个槽对应的某个。散列函数为:h(k)=k mod m;一般来说m会取不太接近2的整数次幂的素数,这样可以使k个元素尽量映射均匀并且能改变k字符散列值。乘法散列表先将关键字k乘上常数A(0<A<1),并提取kA的小数...

2020-03-10 13:36:54 140

原创 算法导论第十二章笔记

二叉树这里的二叉树类型分别包含关键字key,left、right、parent、指针分别指向左孩子、右孩子、双亲。若对应节点不存在就用nullptr空指针代替。这里的二叉搜索树,对于任何节点x,其左子数的关键字最大不超过x->key,其右子树的关键字不低于x->key。二叉树遍历有中序,先序,后序三种遍历方式,根据输出的根关键字在其左右子树间的位置来命名,这边里的函数是中序遍历。这...

2020-03-10 13:36:21 136 1

原创 算法导论第十章笔记

**栈和队列

2020-03-08 19:56:51 115

原创 算法导论第九章笔记

期望时间为线性时间的选择算法该代码作用如其标题很好理解,实现代码有用到快速排序的思想,目标输出给出数组中第i个大的数,先在数组中随机拿出一个数A【q】作为界限分左右两堆,左边都小于他右边都大于他,然后他所在队列位置q与所需目标位置i比较确定第i个数就是他还是在左边或是右边,递归进行找到最后输出。时间复杂度:O(n)#include <iostream>#include &lt...

2020-03-03 17:06:19 183

原创 算法导论第八章笔记

计数排序计数排序是用了一个缓存数组储存了数组A的信息,用下表表示A数组的值,C数组的的值表示个数,然后经过countsort函数中第一个for循环C的数值就表示对应A【i】比其小的数有多少个相当于位序然后再把它排列到B数组中时间复杂度O(n)#include <iostream>#include <vector>using namespace std;void...

2020-03-03 17:04:57 124

原创 算法导论第七章笔记

快速排序快速排序其实也是用到了分治算法的思想,快速排序采用双向查找的策略,每一趟选择当前所有子序列中的一个数为界限,将子序列中比界限小的前移,比界限大的后移,当本趟所有子序列都按上述规则划分完毕后将会得到新的一组更短的子序列,他们将成为下趟划分的初始序列集。这里的程序使用的是快速排序的随机版本,所以是输入数据的划分是比较平均的*时间复杂度:最坏情况:O(n^2) 平均情况:O(nlog(n))...

2020-03-03 17:03:16 151

原创 算法导论笔记第六章

堆排序此代码有C++语言实现堆这种数据结构首先是一种特殊的完全二叉树,且满足子节点值大于父节点点值的大或小。然后此堆排序使用最大堆,是先通过将数组创建为一个二叉树,保证每一个节点元素要比他的子节点元素要大,构成一个大顶堆。则该纾解点的根节点元素是所有元素中最大的元素。只要按照把根节点一次提取出来即可。这里heapify函数是维护堆性质的函数它使得A【i】的值在最大堆中“逐级下降”,从而使得以...

2020-03-03 17:01:36 153

原创 算法导论笔记第四章

分治算法分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。其实归并排序也是用到分治算法的思想,接下来的样例是求解一组数列中最大子数列,采用二分思想,分三类情况讨论:1:最大子数列在二分后的左边。2最大子数列在二分后的右边。3最大子数列在二分后跨越中介(由左半边一部分和右半边一部分构成)时间复杂度:O(...

2020-03-03 16:53:23 156

原创 算法导论笔记第二章

插入排序将所需排序的数一个个通过循环找到相应位置插入已排序好的数列中*时间复杂度:*O(n^2)#include<stdlib.h>#include<stdio.h>int main(){ int i,j,a,key; scanf("%d",&a); int A[100]; for (i=0;i<a;i++) scanf("%d",&am...

2020-03-03 16:43:08 111

原创 算法导论笔记

导师组任务

2020-03-01 20:03:50 237

空空如也

空空如也

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

TA关注的人

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