当前位置: 首页 > news >正文

网站开发公司基本业务流程图正规推广赚佣金的平台

网站开发公司基本业务流程图,正规推广赚佣金的平台,wap网站 什么意思,wordpress插件数据库存在哪文章目录 引入算法 1、时间复杂度1.概念2.大O渐进表示法3.常见时间复杂度计算举例 2、空间复杂度1.概念2.常见空间复杂度计算举例 引入 算法 算法就是一段能将一个物体从初始状态转换到某个目标转态的一个有限长序列方法的统称 算法效率:考虑一个方法是否好&…

文章目录

  • 引入
    • 算法
  • 1、时间复杂度
    • 1.概念
    • 2.大O渐进表示法
    • 3.常见时间复杂度计算举例
  • 2、空间复杂度
    • 1.概念
    • 2.常见空间复杂度计算举例


引入

算法

算法就是一段能将一个物体从初始状态转换到某个目标转态的一个有限长序列方法的统称

算法效率:考虑一个方法是否好,就要从它的效率上考虑,能高质量(即高效)的完成目标的算法,就是一个好的算法;而对于算法效率要怎么来进行判定呢?

与算法效率有关的因素有很多,包括:算法所需的时间、空间成本等因素;在计算机相关中包括网络运行速度,硬件等因素都会对效率产生影响,而这些因素都是我们所无法掌控的,所以我们在进行算法效率评定中大致以所需的时间和空间作为主要的衡量标志,来对算法效率进行一个判定,这就是时间复杂度与空间复杂度。

1、时间复杂度

1.概念

在计算机中,算法的时间复杂度也有定量的函数,其实也就是他将目标从初始状态转换为目标状态所需花费的时间。就从理论上来讲,想要获取一个算法的时间复杂度,那就必须将在计算机上运行,然后测量所需的时间,才能计算出它的时间复杂度。但在实际生活中,这种方式较为难以实现,所以我们将算法中基本操作的执行次数来作为它的时间复杂度。

我们就以下方的代码来进行一个举例:

//请计算Test1中++count所执行的次数
void Test1(int N)
{int count = 0;for (int i = 0; i < N; ++i){for (int j = 0; j < N; ++j){++count;}}for (int k = 0; k < 2 * N; ++k){++count;}int M = 10;while (M--){++count;}printf("%d\n", count);
}

在如上代码中++count一共执行了:N^2 + 2N + 10次

实际上我们计算算法的时间复杂度时,并不需要将准确的执行次数计算出来,而是只需要渐进的表示。因为当你将量级拉大,比如几十万、几百万次执行中,几十、几百次的执行次数对于整体来说影响也不大。我们通常使用的方法是大O渐进表示法。

2.大O渐进表示法

1.表示方法:O(表达式中影响最大的哪一项)
2.推荐大O表示法
 1)确定的常数次,我们都使用O(1) 来表示;原因:只要是常数次,它就不是未知数的影响,无论基数多大,它都不会变,意味着效率不变
 2)O(N) 意味着随着N的变化,运算时间变长
 3)对于有些会有最好情况、最坏情况、与平均情况,这时候的时间复杂度是保守的估算,取最坏结果
3.注意:
 1)不是说一次循环就是O(n),两次循环就是o(n^2),具体要通过程序区分析
 2)时间复杂度计算,不能去数代码执行的次数,要根据思想去计算时间复杂度,然后看哪个更优,再去实现

4.常见的时间复杂度:O(N^2) , O(N) , O(logN) , O(1)

3.常见时间复杂度计算举例

void Test2(int N)
{int count = 0;for (int k = 0; k < 2 * N; ++k){++count;}int M = 10;while (M--){++count;}printf("%d\n", count);
}void Test3(int N, int M)
{int count = 0;for (int k = 0; k < M; ++k){++count;}for (int k = 0; k < N; ++k){++count;}printf("%d\n", count);
}

Test2就是刚刚我们所计算的那道题,用大O表示法来进行表示,它的时间复杂度是:O(N^2)

Test3中基本操作执行了M+N次,有两个未知数M和N,时间复杂度为 O(N+M)

2、空间复杂度

1.概念

空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时占用存储空间大小的量度 。

空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。 空间复杂度计算规则基本跟实践复杂度类似,也使用大O渐进表示法。

在当今世界中由于电脑,手机等的储存空间大大增加,所以我们在实际处理问题中对与时间复杂度考虑式要优先于空间复杂度的。

2.常见空间复杂度计算举例

// 计算BubbleSort的空间复杂度?
void Test4(int* a, int n)
{assert(a);for (size_t end = n; end > 0; --end){int exchange = 0;for (size_t i = 1; i < end; ++i){if (a[i - 1] > a[i]){Swap(&a[i - 1], &a[i]);exchange = 1;}}if (exchange == 0)break;}
}// 计算阶乘递归Fac的空间复杂度?
long long Test5(size_t N)
{if (N == 0)return 1;return Fac(N - 1) * N;
}

Test4中使用了常数个额外空间,所以空间复杂度为 O(1)

Test5中递归调用了N次,开辟了N个栈帧,每个栈帧使用了常数个空间。空间复杂度为O(N)

http://www.mmbaike.com/news/38549.html

相关文章:

  • 东凤镇 网站建设软文营销的写作技巧有哪些
  • 今年的公需课在哪个网站做推广接单平台
  • 可以免费学编程的网站浙江seo博客
  • 湘潭哪里做网站百度网站排名优化软件
  • 休闲食品网站模板关键词优化软件有哪些
  • 家教响应式网站seo小白入门教学
  • 乌鲁木齐中高端网站建设设计深圳网络营销渠道
  • 做网站后台的叫什么电池优化大师下载
  • 第三方网站做app推手平台哪个靠谱
  • 外国网站做问卷调查挣钱甘肃百度推广电话
  • 政府的网站是自己做的还是外包全网自媒体平台大全
  • python做网站方便么成人英语培训
  • 重庆做网站费用网店代运营一年的费用是多少
  • wordpress安装后浏览首页错位推广关键词如何优化
  • 网站建设的基本概念宁波seo网络推广咨询价格
  • 用友财务软件官方网站德州seo优化
  • 网站首页备案号链接品牌推广的渠道有哪些
  • 可靠的常州网站建设百度广告代理商查询
  • 专业网站排名优化公司铜川网络推广
  • 做网站需要会什么千万别在百度上搜别人名字
  • 浙江网站建设的要求百度指数如何提升
  • 做网站一般像素谷歌seo关键词优化
  • wordpress获取权限seo优化培训
  • 怎么做诈骗网站吗百度开户推广多少钱
  • 公司营销网站建设品牌策划方案范文
  • 网站 布局广告推广软文案例
  • 做网站的思想体会怎样进行seo
  • 做网站要备案吗腾讯企点怎么注册
  • 网站建设学生选课系统西安百度推广开户
  • 网站域名解释怎么做百度登录入口百度