01. 算法介绍与列表查询

作为自学的总结,本部分包括基本的算法介绍和***(以后补)

Part one.

* 算法的基本概念

 一个计算过程,解决问题的方法

* 相关复习

 递归:自己调用自己,并且有结束条件

* 两个基本属性

 时间复杂度:用来评估算法运行效率的一个东西(所用时间)

       类比生活中的一些事情,比如:眨眼——一瞬间、口算题——几秒、烧水——几分钟

       自己总结来说就是不同数量级的时间计量单位。

       print(‘Hello World‘)             O(1)   注意:此种形式即使多行,时间复杂度不变

               O(n)   注释:循环n次则为n

           O(n2)   注释:循环n*n次

        O(n3)   注释:循环n*n*n次

       note:数量级意味着在上述过程中,不受一行/几行的影响

       * 时间复杂度时用来估计算法运行时间的一个式子

       * 一般来说,时间复杂度高的算法比复杂度低的算法慢

       * 常见的时间复杂度(按效率排序)

        O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n2logn) < O(n3)

       * 如何一眼判断时间复杂度

        循环减半的过程-> O(logn)

        几次循环就是n的几次方的复杂度

 空间复杂度:用来评估算法内存占用大小的一个式子(所占空间)

       “空间换时间”

原文地址:https://www.cnblogs.com/april-aaa/p/9090285.html

时间: 2024-11-20 22:05:23

01. 算法介绍与列表查询的相关文章

算法导论-散列表(Hash Table)

目录 引言 直接寻址 散列寻址 散列函数 除法散列 乘法散列 全域散列 完全散列 碰撞处理方法 链表法 开放寻址法 线性探查 二次探查 双重散列 随机散列 再散列问题 完整源码(C++) 参考资料 内容 1.引言 如果想在一个n个元素的列表中,查询元素x是否存在于列表中,首先想到的就是从头到尾遍历一遍列表,逐个进行比较,这种方法效率是Θ(n):当然,如果列表是已经排好序的话,可以采用二分查找算法进行查找,这时效率提升到Θ(logn);  本文中,我们介绍散列表(HashTable),能使查找效率

BWT 压缩解压缩算法介绍 poj 1147

poj上1147题, 题意:任意一个长度为N的字符串,循环左移一个字符长度,这样形成N个新字符串,将这N个字符串按字典顺序排序,从上到下取得排序后的每行最后一列的的所有字符,求排序后的第一行字符串? 举个简单例子: 原串为: 0 0 0 1 1 那么循环左移排序后的矩阵为: 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 那么我们得到最后列的字符串为: 1 0 0 1 0 现在我们只知道最后列的字符串 1 0 0 1 0,让我们求循环左移排序后

联合人脸检测、校准算法介绍

联合人脸检测.校准算法介绍 人脸检测(detection)在opencv中早就有直接能拿来用的haar分类器,基于Viola-Jones算法.但是毕竟是老掉牙的技术,Precision/Recall曲线渣到不行,在实际工程中根本没法给boss看,作为MSRA脑残粉,这里介绍一种MSRA在14年的最新技术:下载   [ECCV 2014] Joint Cascade Face Detection and Alignment.这篇文章直接在30ms的时间里把detection和alignment都给

开源Math.NET基础数学类库使用(01)综合介绍

原文:[原创]开源Math.NET基础数学类库使用(01)综合介绍 开源Math.NET基础数学类库使用系列文章总目录:   1.开源.NET基础数学计算组件Math.NET(一)综合介绍    2.开源.NET基础数学计算组件Math.NET(二)矩阵向量计算    3.开源.NET基础数学计算组件Math.NET(三)C#解析Matlab的mat格式   4.开源.NET基础数学类库使用Math.NET(四)C#解析Matrix Marke数据格式   5.开源.NET基础数学类库使用Mat

Nmap原理-01选项介绍

Nmap原理-01选项介绍 1.Nmap原理图 Nmap包含四项基本功能:主机发现/端口扫描/版本探测/操作系统探测.这四项功能之间存在大致的依赖关系,比如图片中的先后关系,除此之外,Nmap还提供规避防火墙的技巧以及NSE库.下面对这四类Nmap选项进行介绍,主要介绍每个选项有什么作用,如想了解原理,可以阅读本文附录的参考文献. 2. 主机发现 例子: nmap –sn –PE –PS80,135 –PU53 scanme.nmap.org 使用wireshark可以查看,nmap在运行上述语

Haproxy 负载均衡算法介绍:

一.Haproxy配置介绍: 配置文件:/usr/local/haproxy/etc/haproxy.cfg balance roundrobin    # 负载均衡算法配置 二.Haproxy负载均衡算法介绍: balance roundrobin    # 轮询,软负载均衡基本都具备这种算法 balance static-rr    # 根据权重,建议使用 balance leastconn      # 最少连接者先处理,建议使用 balance source         # 根据请求

BFS/DFS算法介绍与实现(转)

广度优先搜索(Breadth-First-Search)和深度优先搜索(Deep-First-Search)是搜索策略中最经常用到的两种方法,特别常用于图的搜索.其中有很多的算法都用到了这两种思想,比如:Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想.BFS的思想:从一个图的某一个顶点V0出发,首先访问和V0相邻的且未被访问过的顶点V1.V2.--Vn,然后依次访问与V1.V2--Vn相邻且未被访问的顶点.如此继续,找到所要找的顶点或者遍历完整个图.由此

使用朴素贝叶斯算法简单实现垃圾邮件过滤之算法介绍实现过程

一.算法介绍https://www.cnblogs.com/love528/p/10125089.html 二.实现过程 实验步骤 (1)收集数据:提供文本文件. (2)准备数据:将文本文件解析成词条向量. (3)分析数据:检查词条确保解析的正确性. (4)训练算法:计算不同的独立特征的条件概率. (5)测试算法:计算错误率. (6)使用算法:构建一个完整的程序对一组文档进行分类. 主要代码解析 (1)    分词 使用正则表达式将邮件文本其划分成一个个单词的形式 import re def t

淘淘商城02——dubbo框架整合_商品列表查询实现_分页

1.   课程计划 1.服务中间件dubbo 2.SSM框架整合. 3.测试使用dubbo 4.后台系统商品列表查询功能实现. 5.监控中心的搭建 2.   功能分析 2.1. 后台系统所用的技术 框架:Spring + SpringMVC + Mybatis+dubbo 前端:EasyUI 数据库:mysql 2.2. 系统间通信 由于淘淘商城是基于SOA的架构,表现层和服务层是不同的工程.所以要实现商品列表查询需要两个系统之间进行通信. 如何实现远程通信? 1.使用WebService:效率