
C++
我永远信仰
收藏从未停止,学习从不开始
展开
-
C++中的map如果是结构体需要注意什么问题?
map是STL的一个关联容器map内部自建了一棵红黑树,具有对数据的自动排序功能。map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于一对一映射(one-to-one)的情況,在map内部所有的数据都是有序的。以<key,value>的形式来映射。map的自动排序是根据key的排序准则来排序的,默认是less<>升序排序,也可以修改该排序准则所以如果key是结构体,那么要提供一个排序准则来对key进行排序。所以要在结构体里面定义原创 2021-06-20 19:08:04 · 1608 阅读 · 0 评论 -
二分法查找算法
二分法也叫折半法算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。基本思想:假设数据是按升序排序的,对于给定值key,从序列的中间位置k开始比较,如果当前位置arr[k]值等于key,则查找成功;若key小于当前位置值arr[k],则在数列的前半段中查找,arr[low,mid-1];若key大于当前位置值arr[k],则在数列的后半段中继续查找arr[mid+1,high],直到找到为止。时间复杂度:O(log(n))递归算法:(c++实现)#include<原创 2020-11-27 13:36:09 · 381 阅读 · 0 评论 -
半数集问题
问题描述:给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下:(1) n∈set(n);(2) 在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;(3) 按此规则进行处理,直到不能再添加自然数为止。例如,set(6)={6,16,26,126,36,136},半数集set(6)中有6个元素。输入:整数n(0<n<1000)输出:半数集set(n)中的元素个数。请设计递归函数,求出set(n)的个数,并分析算法时间复杂度,对算法进行改进,用程序验证递归原创 2020-11-18 19:33:22 · 443 阅读 · 0 评论 -
穷举问题-搬砖
某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬1块。如果想用n人正好搬n块砖,问有多少种搬法?输入格式:输入在一行中给出一个正整数n。输出格式:输出在每一行显示一种方案,按照"men = cnt_m, women = cnt_w, child = cnt_c"的格式,输出男人的数量cnt_m,女人的数量cnt_w,小孩的数量cnt_c。请注意,等号的两侧各有一个空格,逗号的后面也有一个空格。如果找不到符合条件的方案,则输出"None"输入样列:45输出样原创 2020-11-11 10:27:50 · 1746 阅读 · 0 评论