![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础算法
SantanX
这个作者很懒,什么都没留下…
展开
-
【基础算法补全】二分查找
算法思想:在一个无序的顺序存储结构中,要想寻找到某一个元素,我们通常需要对该结构中的元素逐个遍历。这非常耗费时间。但在有序数组中,我们有比逐个比对更为快捷的算法可供选择——如果我们能够利用数组有序的性质,选择性的遍历数组的部分,那么程序的执行便会有效率得多了。以升序序列为例。在一个升序数组中,一个数左边的数必定是小于该数的,而其右边的数必定是大于该数的。于是,在接下来的搜索中,我们可以每次都只对比数组的中间项与待查找值是否一致,并把该数组沿中间项“切开”分为两半,根据中间项与待查找值的对比结果来选择原创 2021-10-03 18:52:14 · 152 阅读 · 1 评论 -
【基础算法补全】快速幂
算法思想:-对于除了指数为零的情况外每种base ^ n,都有且仅有 base ^ n = base ^ (n / 2) * base ^ (n / 2) 或 base ^ n =base ^ (n / 2) * base ^ (n / 2) * base ^ 1 两种情况,因此可以得出以下递归/非递归算法代码实现:C++代码实现:递归实现:int getrow(int base,int n){ // base 为底数,n 为指数 if(n == 0){ // 递归..原创 2021-10-03 00:43:19 · 144 阅读 · 0 评论 -
【基础算法补全】埃氏筛
算法思想: - 素数的倍数必不是素数代码实现:C++:bool *is_Prime; // 布尔型指针,用于申请一个连续的数组空间,判断数组下标对应数是否为素数void Initialize(int n){ // 初始化用于素数判断的布尔数组,n代表本程序中需要埃氏筛判断的最大素数 is_Prime = new(bool [n + 1]); // 为指针赋予数组空间 is_Prime[0] = false; is_Prime[1] = false;...原创 2021-10-02 21:55:54 · 212 阅读 · 0 评论