- 博客(18)
- 问答 (2)
- 收藏
- 关注
原创 数据结构之插入排序
基本思想:将带排序表分割为若干个形如L[i,i+d,i+2d....]的”特殊"子表,把相隔某个增量的元素构成一个子表,对每个子表使用直接插入排序,当整个表中的元素呈现“基本有序”时,再对全体记录进行一次直接插入排序。:折半插入排序通过折半减少元素比较次数,时间复杂度约为:O(nlogn),该比较次数与待排序表的初始状态无关,仅取决于表中元素的个数n,移动次数并未改变,它依赖于待排序表的初始状态,因此折半插入排序的时间复杂度为O(n的平方)。平均情况下的时间复杂度为O(n的平方)
2024-04-27 21:51:14
240
原创 算法学习之回溯法(个人学习)
一、回溯的概念:回溯法有“通用解题法”之称,可以系统地搜索一个问题的所有解或任一解,他是个既带有系统性又带有跳跃性的搜索算法。回溯法求问题的所有解时,要回溯到根,且根节点的所有子树都已被搜索到才结束。求问题的一个解时,只要搜索到问题的一个解就结束。这种以深度优先方式系统搜索问题解的算法称为回溯法,适合解组合数较大的问题。深度优先方式:从根节点出发搜索解空间树,算法搜索至解空间树的任意节点,先判断该节点是否包含问题的解,如果肯定不包含,则跳过对该节点为根的子树的搜索,逐层回到祖先节点回溯;
2024-01-15 14:48:01
441
原创 算法学习之动态规划(个人学习)
一、动态规划的思想:将待求解问题分解为若干子问题,先求解这些子问题的解,再结合子问题的解得到原问题的解。用一个表记录所有已解决的子问题的答案,不管该子问题以后是否被用到,只要它被计算过,就将结果填入表中。二、与分治的区别:适用于动态规划法求解的问题经分解得到的子问题往往不是相互独立的。若用分治法来解这类问题,则分解得到的子问题太多,以至于解决原问题需要耗费指数级时间。三、求解步骤:1、找出最优解的性质,并刻画其结构特征2、递归地定义最优解3、以自顶向上的方法计算最优值。
2024-01-15 14:47:44
358
原创 算法学习之贪心算法(个人学习)
一、贪心算法的概念:贪心算法总是做出当前看来是最好的选择。也就是说,贪心算法并不从整体最优上考虑,所作的选择只是在某种意义上的局部最优选择。二、贪心算法的基本要素:1、最优子结构性质:当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。该性质时该问题可用动态规划算法或贪心算法求解的关键特征。2、贪心选择性质:所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到,这个性质时贪心算法的第一个基本要素,也是贪心算法与动态规划算法的主要区别。三、例题之活动安排问题。
2024-01-12 14:24:58
930
1
原创 算法学习之分治(个人学习)
一、分治的基本思想将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同,递归地解这些子问题,然后将各个子问题的解合并到原问题的解。二、采用分治解决问题的具体题目:二分搜索技术:是运用分治策略的经典例子。二分搜索的基本思想:二分搜索前提是有序序列,将n个元素分为个数大致相同的两半,取a[n/2]两半的边界值和x进行比较,如果相等,算法终止。如果x
2024-01-09 13:55:50
381
原创 算法学习之递归(个人学习)
一、递归的概念直接或间接的调用自身的函数/算法叫递归函数/算法。为了进一步理解递归的含义,从以下几个题进行介绍:二、具体例题:题目来源:牛客来源:牛客网。
2024-01-07 18:26:26
831
1
原创 anaconda如何删除现有环境和创建现有环境?(记录)
找到你想要卸载的环境,并记下其路径,我要卸载的是detetron2这个环境,我可以看到它的路径。输入以下命令来列出系统中已经安装的 Anaconda 环境,有星号的表示现在正在使用的环境。打开命令符或者终端窗口,我是打开的这个图片的Prompt。可以再次查看,detectron2环境卸载完成。可以直接在anaconda里在这个环境下下包。输入一下命令,然后根据提示输入‘y’列举一下环境发现已经下好了。同样也是打开prompt。
2023-12-09 00:00:33
1320
原创 c语言-循环题目-牛客
一、输出箭形图案解析:分析图案特征:打点的是空格如果输入的为n,*的数量是以1为增量递增,再以1为增量递减的,最大达到的值应为n+1空格的数量是根据n,最大应有的空格数为:2*n,先以-2的速度递减,后以+2的速度增加二、牛牛学数列(2)题目:分析:这个题目有很多基础知识,首先对于小数的定义,一般使用double来定义,减少出错,其次c语言中浮点数的除法一定要转换为浮点数。float类型通常是单精度浮点数,占用32位(4字节),用于表示较小范围内的小数,精度约为6-7位小数。
2023-08-12 09:08:33
244
1
原创 python之字典
1、键(key)是唯一的,不可变的,而值(value)不是唯一的,而且可取任何数据类型。3、不要以dict作为变量名,因为dict是一个内置函数,容易引发错误。无序的,可变的键值对集合,可变即存储任意类型的对象。2、一个key+一个对应的value是一个item。4、字典的长度同字符串的长度求法:len(x)(注释部分为输出),infor为字典名称。3、获取全部值:以元组的形式返回。:利用字典统计字符个数。2、使用内置函数创建。2、get获取单个值。
2023-04-11 21:18:37
134
原创 C语言算法实现选择排序
一、选择排序(Selection sort)是一种简单直观的排序算法,且是一种不稳定的排序方法。二、选择排序(Selection sort)的实现原理:排序的一组数中,选出最小(或最大)的一个数与第一个位置的数交换;在剩下的数当中找最小的与第二个位置的数交换,即顺序放在已排好序的数列的最后,如此循环,直到全部数据元素排完为止。三、选择排序(Selection sort)的算法分析:对于选择排序首先要理解选择排序的思想,程序中会用到两个for循环,一个for循环用来输入值,确定数据元素的位置.
2021-12-25 20:58:35
7071
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人