当前位置: 首页 > 编程日记 > 正文

2018-3-1 算法学习部分

1:算法的Python实现   数据结构以及算法的基本概念

通过小甲鱼论坛中的数据结构部分进行理解基本的概念的自我理解:

数据结构官方数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科

小甲鱼论坛:

【新提醒】★第一讲-数据结构和算法绪论,数据结构与算法,技术交流区,C论坛 - Powered by Discuz!

http://bbs.fishc.com/forum.php?mod=viewthread&tid=95983&ctid=1041

 

结合小甲鱼论坛的自我理解:

首先是一门学科,这门学科的研究内容是关系,就是一大堆数据给出他们之间的潜在规则或联系。总得来说就是一种或多种关系的集合。

数据结构说明元素的关系以及数据,而算法就是将这些数据以及关系的基础之上进行规则操作从而“程序设计”

 

集合结构


线性结构


图形结构类似于一个网络


树形结构:父与子的关系

顺序存储:

数据元素存放在连续的地址单元,逻辑上是先来的存储上也是先来的

链式存储:

大家之间有链接,没必要每次连续的排队,就是类似于生活中的社交,我找到村长,村长找到县长,等等(不知道自己这么想对不对,反正和论坛上不一致)

算法:

来源:

【新提醒】★ 第二讲-谈谈算法 ★,数据结构与算法,技术交流区,鱼C论坛 - Powered by Discuz!

http://bbs.fishc.com/forum.php?mod=viewthread&tid=96005&ctid=1041

 

官方定义:(不用太认真)

算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
小甲鱼解释:

算法就是你泡妞儿技巧方式

当你是一个单纯的以为写封情书,并告诉妹子,我爱你,就能拿啥的单纯boy,注定单身撸代码。
假如你是像小甲鱼一样,高傲,孤冷,套路很多的老司机,注定彩旗飘飘~

就像没有药可以包治百病一样
一个问题可以由多个算法解决
一个算法也不可能具有通解所有问题的能力

---小甲鱼

自我理解:

做一件事,达到目的的设计出来的一套捷径。毕竟有近路谁都不愿意绕远。那些捷径最终成为了牛逼的算法留在了我们的试卷上。


算法要有输出:不然是干吃(输入)不拉(输出)笑哭

有穷性:算法要有结束,要休息

确定性:不能老是搞暧昧的关系,不清楚具体的真正要什么

可行性:不能运行,不能实施,你还有做吗?

就是一个算法不仅仅只是在运行正确的情况下顺利的进行,还要在出现错误的时候能够自行的修补,给出线索,就相当于自己能了一个调试的应用

 

算法复杂度:

来源:

【新提醒】★ 第三讲-时间复杂度和空间复杂度 ★,数据结构与算法,技术交流区,鱼C论坛 - Powered by Discuz!

http://bbs.fishc.com/forum.php?mod=viewthread&tid=96069&ctid=1041

两大算法度量方法:

 

 

 

效率的度量方法:

主要的操作步骤执行的次数进行比较

以下摘自论坛:

 

 

函数的渐进增长



做一个测试:判断一下四个算法哪个更好?(输入规模都是n

算法A1

2n+3



算法A2

2n



算法B1

3n+1



算法B2

3n





n=1时,算法A1效率不如算法B1,当n=2时,两者效率相同;

n>2时,算法A1就开始优于算法B1了,随着n的继续增加,算法A1比算法B1逐步拉大差距。


所以总体上算法A1比算法B1优秀。


渐进增长定义



渐进增长:
给定两个函数f(n)g(n),如果存在一个整数N使得对于所有的n>Nf(n)总是比g(n)大。

那么,我们说f(n)的增长渐近快于g(n)

从刚才的对比中我们还发现,随着n的增大,后面的+3+1其实是不影响最终的算法变化曲线的。

例如算法A2B2,在图中他们压根儿被覆盖了。

所以,我们可以忽略这些加法常数。(维度不一样,攻击效果不一样)

算法时间复杂度2,小甲鱼论坛:【新提醒】★第四讲 时间复杂度和空间复杂度2 ★,数据结构与算法,技术交流区,鱼C论坛 - Poweredby Discuz!

http://bbs.fishc.com/forum.php?mod=viewthread&tid=96149&ctid=1041

官方定义:

在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n)= O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。

本质:执行次数==时间

这样用大写O()来体现算法时间复杂度的记法,我们称之为O记法

 

分析大O




如何分析一个算法的时间复杂度呢?

即如何推导大O阶呢?




常数1取代运行时间中的所有加法常数。
在修改后的运行次数函数中,只保留最高阶项。
如果最高阶项存在且不是1,则去除与这个项相乘的常数。
得到的最后结果就是大O阶。


常用的时间复杂度所耗费的时间总结:

O(1) < O(logn) < (n) < O(nlogn) < O(n^2) < O(n^3) <O(2^n) < O(n!) < O(n^n)

我们通常说的运行时间都是最坏情况下的运行时间

当直接要让我们求复杂度时,通常指的是时间复杂度

算法的空间复杂度:

1. S(n)=O(f(n))


其中,n为问题的规模,f(n)为语句关于n所占存储空间的函数。

空间复杂度就设计到计算机存储

 

相关文章:

国内第三方移动推送对接调查:Android、IOS、Flutter,各种云推送、个推、极光、统一推送联盟

第三方移动推送对接,刚开始是移动端发起的。在开会讨论这个对接时,心里突然很迷茫,为什么要做第三方移动推送对接?我们自己为什么不能做移动推送?话说,项目里目前所使用的推送就是自己做的。但是在App离线情况下,消息就收不到了。想起来了,这是最最重要的问题,是为了在离线的情况下,App还能收到通知和消息。如果不是因为这个,这个对接可以不做。因为手机端的app层不出穷太多了,为了给手机省电,用户会主动把运行在前端的app给咔嚓掉…虽然咔嚓掉,但是在有信息的情况下,用户还是希望能够收到信息。

云计算的三种服务模式:IaaS、PaaS和SaaS

租赁 IaaS 云服务,对租户而言,最大优点是其灵活性,由租户自己决定安装什么操作系统、需不需要数据库且安装什么数据库、安装什么应用软件、安装多少应用软件、要不要中间件、安装什么中间件等,相当于购买了一台计算机,要不要使用、何时使用以及如何使用全由自己决定。① 相比于 IaaS 云服务提供商,PaaS 云服务提供商要做的事情增加了,他们需要准备机房、布好网络、购买设备、安装操作系统、数据库和中间件,即把基础设施层和平台软件层都搭建好,然后在平台软件层上划分“小块”(习惯称之为容器)并对外出租。

深度学习硬件基础:CPU与GPU

CPU:叫做中央处理器(central processing unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。[^3]可以形象的理解为有25%的ALU(运算单元)、有25%的Control(控制单元)、50%的Cache(缓存单元)GPU:叫做图形处理器。

Blender着色器纹理材质创作教程含源文件 Shader Forge

本Blender视频课程是一个正在进行的关于为Cycles渲染引擎构建材质(着色器)的系列。只要有足够的时间和努力&#xff0c;物质性就能给CG场景注入这样的生命。 本课程是一个正在进行的关于为Cycles渲染引擎构建材质(着色器)的系列。有了足够的时间和精力&#xff0c;高质量的阴影…

Android 5.0新特性之沉浸式状态栏

参考资料&#xff1a;http://laobie.github.io/android/2016/03/27/statusbar-util.htmlhttp://laobie.github.io/android/2016/02/15/status-bar-demo.htmlhttp://www.jianshu.com/p/f0a0efe5d26f将状态栏颜色和顶部导航栏颜色保持一致从而达到融合的效果&#xff0c;我们将这…

数字信号处理实验三用fft对信号作频谱分析_机器学习中的音频特征:理解Mel频谱图...

如果你像我一样&#xff0c;试着理解mel的光谱图并不是一件容易的事。你读了一篇文章&#xff0c;却被引出了另一篇&#xff0c;又一篇&#xff0c;又一篇&#xff0c;没完没了。我希望这篇简短的文章能澄清一些困惑&#xff0c;并从头解释mel的光谱图。信号信号是一定量随时间…

【Kaggle Learn】Python 1-4

【Kaggle Learn】Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Python syntax, variable assignment, and numbers spam_amount 0 print(spam_amount)# Ordering Spam, egg, Spam, Spam, bacon and Spam (4 more servings of Spam)…

svn中的ignore

首先,svn GUI菜单右键的ignore功能,写的模模糊糊,网上也没啥人给出清晰的解释,stackoverflow推荐用命令行控制 SVN有3中方法配置ignore 1.配置文件 C:\Users\{you}\AppData\Roaming\Subversion\config 这个只是本地客户端端, 2.svn&#xff1a;ignore 如果带recursively,在执行…

2018-3-2线性表

2018-3-2 来源小甲鱼论坛&#xff1a; ★第八讲 线性表3 ★,数据结构与算法,技术交流区,鱼C论坛 - Poweredby Discuz! http://bbs.fishc.com/forum.php?modviewthread&tid96295&ctid1041 1. 线性表&#xff08;List&#xff09;的定义&#xff1a; 由零个或多个数…

元宇宙开发:你在虚幻引擎中的第一个虚拟现实游戏

了解如何开发零编程背景的Oculus Quest游戏 你会学到什么 为Oculus Quest构建应用程序 设计和开发虚拟现实游戏 在虚幻引擎中工作 使用材料和纹理 优化内容&#xff0c;实现移动和虚拟现实游戏的快速性能 流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#x…

虚拟机访问svn服务器超时_SVN卡顿原因及简单修复方法

项目中用SVN&#xff0c;使用过程中尤其时访问SVN浏览器的时候经常卡顿&#xff0c;这个时间累积起来很是浪费&#xff0c;所以找个机会从各个方面分析了一下卡顿原因&#xff0c;也总结了一些修复经验。硬件问题查看电脑配置是否SSD双硬盘&#xff0c;如果是&#xff0c;查看设…

前端页面——Cookie与Session有什么区别

我们在实际生活中总会遇到这样的事情&#xff0c;我们一旦登录&#xff08;首次输入用户名和密码&#xff09;某个网站之后&#xff0c;当我们再次访问的时候&#xff08;只要不关闭浏览器&#xff09;&#xff0c;无需再次登录。而当我们在这个网站浏览一段时间后&#xff0c;…

【Kaggle Learn】Python 5-8

五. Booleans and Conditionals Using booleans for branching logic x True print(x) print(type(x)) True <class bool> ①Booleans Python has a type bool which can take on one of two values: True and False. ②Comparison Operations a b, and, or, not等等 …

hdu 2795 段树--点更新

http://acm.hdu.edu.cn/showproblem.php?pid2795 在第一和第三多学校都出现线段树&#xff0c;我在比赛中并没有这样做。&#xff0c;热身下&#xff0c;然后31号之前把那两道多校的线段树都搞了&#xff0c;这是一道热身题 关键是建模&#xff1a; 首先一定看清楚题目构造的场…

2018-3-3 论文(网络评论中非结构化信息的表示与应用研究)笔记一

文章立脚点&#xff1a; 大量网络评论的出现&#xff0c;使得产品制造商或消费者很难跟踪己购产品用户的意见和建议&#xff0c;这就给他们的决策造成了额外的困难。 文章思路; 将网络评论中的非结构化信息处理成结构化信息 文章的总体的脉络 首先研宄评论分词、词性标注…

Blender中的大师级3D环境场景制作学习教程

你需要在一个地方学习的一切 在本课程中&#xff0c;您将学习Blender中景观创建的每一个重要工作流程&#xff0c;而无需使用任何付费附加组件或资产。 你将学习如何创造山脉、海洋、森林、沙漠、云层和天气影响。无需搜索描述特定技术或工作流程的在线视频–您将在一门课程中…

git diff 比较文件_使用Python创建你自己的diff工具

为什么我需要自己的diff工具&#xff1f;我经常使用git跟踪我的编码项目、文章、业务工作等等。git的一个美妙之处在于&#xff0c;你可以通过简单地使用其内置的diff功能来轻松地比较你的工作的不同状态。要使用这个功能&#xff0c;你只需要满足两个约束:首先&#xff0c;你需…

Oracle开发:normal ,sysdba,sysoper区别

Oracle将用户分成两类&#xff1a;【system】和【sys】 【system】用户只能用normal身份登陆em。(可以看成公司的普通成员)【sys】用户具有“SYSDBA”(可以看成公司的CEO)或者“SYSOPER”权限(可以看成公司的运营主管)&#xff0c;登陆em也只能用这两个身份&#xff0c;不能用n…

记录win10快捷键

wintab 虚拟桌面 winshifts 截图 wins 搜索 winq 小娜 win↑ 或←等 快速分屏 1809: winv 剪贴板 笔记本: ~~

清除浮动实用方案

1&#xff1a;给父元素添加overflow&#xff1a;hidden属性 2&#xff1a;father&#xff1a;after{ content: ""; display: block; clear: both; }转载于:https://www.cnblogs.com/liujianhui/p/4613600.html

2018-3-4 nginx和Tengine 以及高并发的概念

问题一&#xff1a;什么是nginx&#xff1f;&#xff1f; 来源百度百科&#xff1a;nginx_百度百科 https://baike.baidu.com/item/nginx/3817705?fraladdin Nginx (engine x) 是一个高性能的HTTP和反向代理服务器&#xff0c;也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔…

三维植物树木模型 Maxtree – Plant Models Vol 74

maxtree–工厂模型第74卷 大小解压后&#xff1a;2.34G 信息: 植物模型第74卷是高质量的三维植物模型的集合。包括12个物种&#xff0c;共72个单一模式。 获取地址&#xff1a;三维植物树木模型 Maxtree – Plant Models Vol 74-云桥网 种类 三角枫 槭树 复叶槭 鸡爪槭 白桦…

python pandas_Python库Pandas数据可视化实战案例

点击上方“爱好Python的胡同学”&#xff0c;选择“星标”公众号每晚八点&#xff0c;Python干货&#xff0c;不见不散&#xff01;数据可视化可以让我们很直观的发现数据中隐藏的规律&#xff0c;察觉到变量之间的互动关系&#xff0c;可以帮助我们更好的给他人解释现象&#…

inconfont 字体库应用

先去注册个号码&#xff0c;好像只可以用新浪微博登录哈&#xff0c;搞一个微博去。 第一就是点上面图标库&#xff0c;选择官方和所有都行。 恩接着点一个图标&#xff0c;他就自己跑到 第二个按钮哪里去了&#xff0c;在点第二个按钮&#xff0c;会出来一个创建项目&#xff…

deepin初试与file browser使用小结

①c盘也可以弄压缩盘安装deepin啊 ②deepin硬盘格式Windows看不见,而在deepin中Windows硬盘可以看见 ③安装完deepin如果直接进入了win10,其实不用费这么大劲搞来搞去,比如修复uefi easyuefi什么的 直接关闭win10的快速启动 然后用easybcd 弄个引导(grup2)就行 很简单 ④dee…

iptables工具__过滤包—命令

iptables工具__过滤包—命令(-A、-I、-D、-R、-L等)、参数(-p、-s、-d、--sport、--dport、-i、-o等)、动作-j (ACCEPT、DROP、REJECT、REDIRECT等) iptables 指令语法&#xff1a;iptables [-t table] command [match] [-j target/jump]-t 参数用来指定规则表&#xff0c;内建…

2018-3-5(论文——网络中非结构信息的表示与应用)笔记二 (歧义词,未登录词,禁用词)

1.文本的词性标注 词性作为一种语义特征通常&#xff1a;名词 n 动词 v 副词 d 连词 c 形容词 a 通过使用自动标注器&#xff0c;完成文本的标注。 2.歧义词 -----汉字处理 按照偏正结构&#xff0c;汉字通常是形容词在前名词&#xff08;中心…

PBR游戏3D模型合集包 PBR Game 3D-Models Bundle February 2022

PBR游戏3D模型捆绑包2022年2月 大小解压后&#xff1a;6.99G MAX| OBJ | FBX |TEX 模型获取&#xff1a;PBR游戏3D模型合集包 PBR Game 3D-Models Bundle February 2022-云桥网 包括: 500马格南定制左轮手枪 ACV-15 加法机 模拟无线电A16-PRC316 陆军奔驰 巴雷特PRC-2080战术…

python编写用户输入的是q么代码_Python课 #01号作业

为了记录我的Python课&#xff0c;将我的作业发上来&#xff0c;欢迎各位大佬评鉴。如果你有什么更好的想法&#xff0c;请在下方评论或联系我。谢谢&#xff01; 作业一&#xff1a;向某人打招呼 描述 程序接收用户输入的姓名&#xff0c;然后输出向该姓名问好的文字。 代码&a…

CPU(处理器)、内存、硬盘之间的关系

前面提到了,电脑之父——提出了计算机的五大部件:输入设备、输出设备、存储器、运算器和控制器。我们看一下现在我们电脑的: 键盘鼠标、显示器、机箱、音响等等。这里显示器为比较老的CRT显示器,现在一般都成功了液晶显示器。我们想一下,我们在玩电脑的时候,我们使用键盘鼠标来操作电脑,我们在和其他人QQ聊天的时候,鼠标可以帮我们选中聊天的人,打开聊天窗口,键盘则是负责打字,帮我们输入聊天的内容。我们在操作键盘鼠标的时候,其实都是在告诉电脑来做什么的。我们管键盘和鼠标叫输入设备。向电脑输入数据和信息的设备。