算法
我是叫帽帽啊
这个作者很懒,什么都没留下…
展开
-
程序设计与算法 算法基础:递归
递归的基本概念:一个函数调用其本身。经典递归程序,求N的阶乘:int Factorial(int n){ if(n == 0) return 1; return n*Factorial(n-1);}这个递归程序的时间复杂度为O(n)。 递归和普通函数一样都是通过栈来实现的。递归的作用 :1) 替代多重循环2) 解决本来就是用递归形式定...原创 2018-09-19 16:35:30 · 2732 阅读 · 0 评论 -
算法基础学习笔记 二分算法
二分算法的基本思想就是每一次缩小查找范围的一半。最常见的应用就是折半(二分)查找函数:int BinarySearch(int a[],int size,int p){ int L = 0; //查找区间的左端点 int R = size - 1; //查找区间的右端点 while( L <= R) { //如果查找区间不为空就继续查找 i...原创 2018-10-14 22:57:51 · 892 阅读 · 0 评论 -
POJ 百练 2456:Aggressive cows
描述Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1,...,xN (0 <= xi <= 1,000,000,000).His C (2 <=...原创 2018-10-14 23:10:16 · 1522 阅读 · 0 评论 -
北京大学MOOC 算法基础第五周 分治算法 测试
分治的基本概念:把一个任务,分成形式和原任务相同,但规模更小的几个部分任务(通常是两个部分),分别完成,或只需要选一部完成。然后再处理完成后的这一个或几个部分的结果,实现整个任务的完成。分治的典型应用:归并排序:1) 把前一半排序2) 把后一半排序3) 把两半归并到一个新的有序数组,然后再拷贝回原数组,排序完成。#include <iostream>us...原创 2018-10-14 23:24:44 · 1054 阅读 · 0 评论