说在前面:⭐看到这篇文章的友友你好啊,在学习的路途中欢迎你的私信、留言,交流互动啊,我们一起学习、一起进步呀!⭐
目录
数据和结构
解释含义
🚀数据就是包含着大量的信息,信息的量堆积上来,就会使得信息变得杂乱
🚀结构就是对数据进行处理,使得数据更加合理
数据的属性划分
🚀按照数据的属性,我们可以先把数据按照属性进行划分,例如:整型、浮点型、字符串型等等
数据和算法的关系
🚀对数据的高效处理就是算法的涵盖内容,如何使用准确便捷的方法对庞大的数据进行处理就需要学习算法的能力了,这里也凸显了学习好数学的重要性,利用数学思维来处理问题,当然死磕代码谁都逃不掉。
⭐算法的底层逻辑还是数学,基础学科构造了底层的逻辑,计算机只是一个辅助工具
算法中复杂度
🚀计算复杂性理论中的复杂度,判断算法的好坏
🚀复杂度往往是考察一个算法是否高效的标志
复杂度分为空间复杂的和时间复杂度,现今计算机的性能飞跃式的提升,空间复杂度往往不会作为考虑的因素
时间复杂度
🚀时间复杂度:指完成一个算法所需要的时间,是衡量一个算法优劣的重要参数。时间复杂度越小,说明算法效率越高。
算法的时间复杂度是一个函数式T(N)
常见的时间复杂度量级有常数阶O(1)、对数阶O(logN)、线性阶O(n)、线性对数阶O(nlogN)、平方阶O(n^2)、立方阶O(n^3)、指数阶O(2^n)和阶乘阶O(n!)等。
大O符号,用于描述函数渐进行为的数学符号,时间复杂度空间复杂度都可使用
时间复杂度函数式T(N)中,只保留最⾼阶项,去掉那些低阶项,因为当N不断变⼤时,低阶项对结果影响越来越⼩,当N⽆穷⼤时,就可以忽略不计了
只要是常量就忽略不计,高阶项和低阶项在一起时,常常可以将低阶项舍去
空间复杂度
🚀空间复杂度:空间复杂度是指完成一个算法所需要占用的存储空间,一般是输入参数的函数。它也是算法优劣的重要度量指标。空间复杂度越小,算法通常被认为越好。
对于不同性能的电脑来说,编译环境、运行环境等都是有差异的,往往性能越高所耗时间越短
一种粗略的计算方式:
程序的时间效率=每条语句的运行时间(不确定的)*运行的次数(确定的)
说在最后:
如何检查自己的数据结构和算法学习的程度?
这里可以推荐一个方法:
把复杂的数据结合给你的朋友用简单的方法讲出来让他理解