
算法学习笔记
文章平均质量分 62
无
wenningker
此人无趣
展开
-
算法导论学习笔记——递归及解法
算法导论学习笔记——递归及解法大O表示法:算法运行上界f(n)=O(g(n))f(n)=O(g(n))f(n)=O(g(n)) : 存在一个常数 c>0,n0>0c>0,n_0>0c>0,n0>0,such that 0<=f(n)<=cg(n)0 <= f(n) <= cg(n)0<=f(n)<=cg(n), for all n>=n0n >= n_0n>=n0。f(n)f(n)f(n)以g(n)g(n)原创 2022-04-11 17:11:38 · 350 阅读 · 0 评论 -
算法导论学习笔记——算法分析
算法导论学习笔记——算法分析算法分析是关于计算机程序性能和资源利用的研究,特别关注性能,什么比性能更重要?正确性健壮性(是否经常奔溃)模块化:只需要修改局部的代码安全性problem sortingInput:一个数字序列output:排序之后的序列插入排序:最坏的时间复杂度O(n2n^2n2),逆序情况时间复杂度T(n)T(n)T(n):输入规模位n时算法的运行时间Average-caseT(n)T(n)T(n):运行时间的期望值best-case(cheat)原创 2022-04-11 11:16:01 · 382 阅读 · 0 评论 -
快速幂算法学习笔记
原文链接:快速幂算法什么是快速幂算法取模运算法则(a + b) % p = (a % p + b % p) % p (1)(a - b) % p = (a % p - b % p ) % p (2)(a * b) % p = (a % p * b % p) % p (3)(a * b * c) % d=(a%d * b%d * c%d) % d; 因此,我们可以借助这个法则,只需要在循环乘积的每一步都提前进行“取模”运算,而不是等到最后直接对结果“取模”,也能达到同样的效果。/转载 2022-03-31 11:34:52 · 149 阅读 · 0 评论 -
c++用递归输出n的全排列(回溯算法)
#include<iostream>#include<vector>using namespace std;//打印void Print(vector<int>v){ for (auto &x : v) { cout <<x<< " "; } cout << endl;}//生成void Creat(vector<int>&v,int n)原创 2021-09-23 17:33:52 · 975 阅读 · 0 评论 -
聚类算法c++代码实现(DBSCAN)
代码原始出处:http://blog.youkuaiyun.com/k76853/article/details/50440182//zhouxianen,20170322修改:能准确分类边界点、核心点和噪音点,并输出维度扩展,原来程序只能读取、聚类和显示二维特征数据,扩展后,可以处理n维数据定义了init()函数初始化化类成员变量(也可以不用)领域半径eps判断条件修改为小于等于,这是为保证与matlab版本形式一致输入数据类型:xx.txt文件输入txt文件格式如下(数据维度可以是n维):1原创 2021-10-07 10:04:34 · 2965 阅读 · 2 评论 -
递归问题及时间复杂度分析
递归递归分析递归问题可分为以下三个步骤分析:1、递归函数功能2、递归终止条件3、递归关系式//n!//1、递归函数功能int f(int n){ //递归终止条件 if(n==1) return 1; //关系式f(n)=n*f(n-1) return n*f(n-1);}//一次可以跳上1级台阶,也可以跳上2级。求该跳上一个n级的台阶总共有多少种跳法。int f(int n){ //递归终止条件 //这里如果写成n==1返回1原创 2021-10-05 15:56:40 · 1458 阅读 · 0 评论