算法学习
编程の小学生
这个作者很懒,什么都没留下…
展开
-
【算法学习4】树与二叉树基础
首先是部分树方面的概念节点:节点包括一个数据元素及若干指向其他子树的分支。叶节点:度为0的节点称为叶结点,叶结点也称为终端节点。根节点:树的最顶端的节点称为根节点。子节点:树中一个节点的子树的根节点称为该节点的孩子节点,即除根节点之外的节点都是其上一个节点的子节点。分支节点:度不为0的节点称为分支节点,分支节点又称非终端节点。一棵树中排除叶结点外的所有节点都是分支节点。度:节点所拥有子树的个数称为节点的度,树中所有节点的度的最大值是树的度。二叉树二叉树是树中最重要的一种,原创 2022-04-15 21:43:21 · 915 阅读 · 0 评论 -
【算法学习3.2】插值查找算法以及C++实现
插值查找在算法学习3.1中提到的二分查找,即折半查找同理的查找算法。折半查找是每次取区间的一半,那可不可以取1/3、1/4这样呢。如果查找区间过长,那么折半查找所需要的时间一定也会非常长。如果能够提前知道目标数据在区间的大概位置,是否可以直接到那个大概位置去寻找呢。奥夫考斯!插值查找的基本原理:基于二分查找算法,将查找点的选择改进为自适应选择,可以提高查找效率。当然,差值查找也属于有序查找。关键代码如下int Search(int a[], int value, int low, in原创 2022-04-15 21:11:37 · 498 阅读 · 0 评论 -
【算法练习3.1】简单查找算法以及C++实现
1、顺序查找顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始依次将数据与目标数据进行比较,若有数据与目标数据相符,则查找成功,否则查找失败(即无目标数据)C++实现的核心代码如下for (int i = 0; i <= len; i++){ if (data[i] == value) // 如果数组中,第i个位置的数字 = 传入的数字 { return data[i]; // 返回数组 }}2、二分查找(折半查找)用给定值与中间结点的关键字原创 2022-04-01 20:46:18 · 528 阅读 · 0 评论 -
【算法练习2】对筛选法求素数的个人理解
通过练习题对埃氏筛选法的简单理解原创 2022-03-25 20:18:31 · 207 阅读 · 0 评论 -
【算法练习1】插入排序的学习
引用大佬的解释插入排序的概念如下:将数组的第一个数认为是有序数组,从后往前(从前往后)扫描该有序数组,把数组中其余n-1个数,根据数值的大小,插入到有序数组中,直至数组中的所有数有序排列为止。对插入排序的个人理解:对一个已知数组,首先规定一个排序方式,如从大到小或从小到大等(以下以从大到小为例)。将第一个元素视为规定排序方式后有序数组的第一个元素,然后从第二个元素开始依次对前面的所有元素进行从后到前的比较,直到找到一个位置使该元素满足规定排序规则为止。如将216354进行从小到大排序,其原创 2022-03-20 18:12:36 · 886 阅读 · 0 评论