- 博客(32)
- 收藏
- 关注
原创 22--折半查找
采用分治法的思想,充分利用元素之间已存在的次序关系,将排好序的数组a[0:n-1]划分成两个个数相同的左、右两部分,取[n/2]与x进行比较,如果x=a[n/2],则找到x,算法结束;如果x>a[n/2],则在数组a划分得到的右半部分继续查找;如果x
2024-03-29 08:20:29
294
原创 21--正整数划分
问题:将给定正整数n表示成一系列正整数之和 n=n1+n2+…+nk,其中n1≥n2≥…≥nk≥1,k≥1。求正整数n的不同划分个数p(n)。在本例中,如果设p(n)为正整数n的划分数,则难以找到递归关系,因此考虑 增加一个自变量:将最大加数n1不大于m的划分个数记作q(n,m)。有些问题本身都具有比较明显的递归关系,因而容易用递归函数直接求解。而有些问题递归关系却不明显。
2024-03-26 23:44:58
624
原创 20--vector实例
题目:从标准输入读取一组整数,若。相邻两个数之和为10,则删除。,最后输出剩余的个数。利用vector,就可以直接删除,提高了效率,也便于操作。
2024-03-23 19:25:32
156
1
原创 19--vector
它是顺序容器的一个模板类,该容器将元素以线性排列方式进行存放,并且允许快速随机访问任何元素,它是随机访问性能最佳的首选序列容器,可以看成智能版的数组(能自动初始化,自动分配内存,自动回收内存,自动提供高效的服务)。其中所有元素的类型都相同,可以通过下标(索引)访问数据。
2024-03-23 19:12:18
205
1
原创 18--范围for
C++11新标准引入了一种更简单的for语句,这种语句可以遍历容器或其他序列的所有元素。注:如果不修改序列的值,可以定义为auto变量或者const auto &变量。
2024-03-23 18:57:23
119
1
原创 17--快速排序
算法思想:找到一个基准(第一个数据),从后往前找比基准小的数字,往前移动,从前往后找比基准大的数据,往后移动。其特点:越有序越慢,若完全有序则退化成了选择排序。
2024-03-23 18:29:44
321
1
原创 16--选择排序
算法描述:每次都从待排序中选出一个最小的和待排序中的第一个数据进行交换。比如5,8,5',2,7,在进行一次选择排序的时候会变成2,8,5',5,7,故其不稳定。
2024-03-23 18:17:27
154
1
原创 14--百钱买百鸡
穷举法:最简单的方法是通过穷举法逐一尝试所有可能的组合,找到满足条件的解。这种方法虽然简单直观,但效率较低,需要逐一检查所有可能的组合。代数法:如前面所示,可以通过代数方法建立方程组,然后解方程得到所有解。这种方法比穷举法高效,可以直接得到所有解。
2024-03-20 18:09:39
267
1
原创 13--全排列问题
依次将待排列的数组的后 n-1个元素与第一个元素交换,则每次递归处理的都是后 n-1个元素的全排列。当数组元素仅有一个时为此递归算法的出口。
2024-03-20 17:27:43
150
1
原创 12--希尔排序
利用直接插入排序,使得组内有序,缩小分组再次排序直到最后一次组数为1,就是利用了插入排序的特点,越有序越快,进而改进的一种排序算法。
2024-03-20 17:17:25
235
1
原创 11--插入排序
算法描述:从当前位置开始,从后往前找比当前数字小的,插入到这个小的数字的后面,在找的过程中,如果发现一个比当前数字大,同时将这个数字往后挪动,其中从后往前是重点。
2024-03-20 17:08:10
326
1
原创 8--哈希表Hash的相关操作
哈希表是一种数据结构,用于实现键值对的存储和查找。其中直接地址法、数字分析法、平方取中法、折叠法、除留余数法、随机数法都可以作为哈希表的散列函数。此处我们用除留余数法和开地址法中的线性探测法来实现哈希表。
2024-03-12 20:46:41
448
1
原创 6--模板的特例化
模板特例化也称模板特化,就是模板的一个具体的定义。当我们不能或者不希望使用模板版本时,可以定义函数模板或者类模板的一个特例化版本。
2024-03-09 16:55:51
125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人