普林斯顿公开课算法1-2:观察

yxysuanfa yxysuanfa     2022-09-04     356

关键词:

这章通过一个简单的样例。具体说明算法分析的步骤。


算法


问题

给定N个不同的整数,从中随意取出三个整数。请问有几种情况,使得取出的3个整数之和为0?


解法

能够使用暴力算法,代码例如以下:


1
2
3
4
5
6
7
8
9
for(int i=0;i<N;i++){
    for(int j=0;j<N;j++){
        for(int k=0;k<N;k++){
            if(a[i]+b[i]+a[k]==0){
                count++;
            }
        }
    }
}


算法分析


观察


输入的整数数量与算法执行时间的曲线图

技术分享


将x轴和y轴都进行log变换,得到下图:


技术分享


因为图中是直线,所以输入数据量和时间的关系符合a*N^b。


如果

执行时间大约是1.006×10^-10×N^2.999秒。


预測

N=8000时,执行时间是51.0秒

N=16000时。执行时间是408.1秒


观察

N=16000时,实际执行时间是410.8秒。符合预測。所以建立的模型是比較正确的。


执行时间的影响因素


算法的执行时间不但跟输入的数据量有关,跟算法本身也有关。

除了这些内部因素,还有非常多外部因素也会影响算法的执行时间,比方CPU的性能、内存性能、系统中其它进程的情况。



















普林斯顿公开课算法2-1:排序概述

目标对全部类型的数据进行排序。问题排序函数怎样知道比較的是哪种类型的数据呢?回调函数这时候就须要引入回调函数的概念了。回调函数就是将可运行的代码作为參数进行传递。实现回调的方法在Java中能够通过接口来实... 查看详情

普林斯顿算法课part2第二周作业_seamcarving

作业地址:http://coursera.cs.princeton.edu/algs4/assignments/seamCarving.html作业难点:1、如何获取图形的RGB属性?  需要研习下Picture、Color类等,使用getRGB()、getRed()、getGreen()、getBlue()等函数;2、如何计算从顶端到底部的最低energy曲线(即... 查看详情

斯坦福公开课-机器学习2.监督学习应用-梯度下降(吴恩达andrewng)(代码片段)

文章目录1线性代数(linearalgebra)1-1符号(Notation)1-2例子——房价预测1-3假设函数(hypothesis)1-3-3用`线性代数-非齐次方程`解释参数**1-普通梯度下降算法****2-批梯度下降算法(batchgradientdescentalgo... 查看详情

计算机公开课推荐2019.8

...序设计抽象视频UCBCS61b:数据结构(Java)主页中文版教材普林斯顿Algs4:算法主页MIT6.006:算法导论系统nand2tetris主页CMU15-213:CSAPP视频笔记MIT6.828:操作系统主页中文版教材UCBCS61c:计算机体系结构主页MIT6.824:分布式系统主页斯... 查看详情

斯坦福公开课-机器学习2.监督学习应用-梯度下降(吴恩达andrewng)(代码片段)

文章目录1线性代数(linearalgebra)1-1符号(Notation)1-2例子——房价预测1-3假设函数(hypothesis)1-3-3用`线性代数-非齐次方程`解释参数**1-普通梯度下降算法****2-批梯度下降算法(batchgradientdescentalgo... 查看详情

浅谈算法和数据结构:一栈和队列

...因。另外普林斯顿大学在Coursera 上也有这本书同步的公开课,还有另外一门算法分析课,这门课程的作者也是这本书的作者,两门课都挺不错的。计算机程序离不开算法和数据结构,本文简单介绍栈(St 查看详情

mit公开课:算法导论笔记

课程链接:http://open.163.com/special/opencourse/algorithms.html第一课:算法分析基础1.介绍插入排序与归并排序,计算并比较最坏运行时间2.算法分析重点与渐近分析方法以下为个人笔记,根据字幕整理 第一课算法分析总结解决问题... 查看详情

麻省理工公开课:线性代数第2课矩阵消元

参考资料:网易公开课:http://open.163.com/special/opencourse/daishu.html  麻省理工公开课:线性代数假设求解:$x+2y+z=2$$3x+8y+z=12$$4y+z=2$一、消元1.矩阵形式$Amathbfx=b$: 2.消元过程如下:矩阵[Ab]为增广矩阵,得到的主元(pivot)分别... 查看详情

网易公开课_算法导论_笔记a

http://open.163.com/special/opencourse/algorithms.html 个人理解  渐进分析istoignoremachine-dependentconstantsand,insteadoftheactualrunningtime      lookatthegrowthoftherunningtime   (以下=表近似、a=b=c、a与 查看详情

斯坦福公开课-机器学习1.机器学习的动机和应用(吴恩达andrewng)

文章目录0三个目标0先修课程要求基本工具1-网址2-邮箱3-本系列课程链接1机器学习的定义1-1非正式定义1-2正式的定义2监督学习(SupervisedLearning)2-1回归问题——连续拟合线(预测房子价格)2-2分类问题——离散数... 查看详情

机器学习公开课笔记第五周之优化机器学习算法

一,提高机器学习算法准确度的方法当我们的机器学习算法不能准确预测我们测试数据时,我们可以尝试通过以下方法提高我们机器学习的算法准确度1),获得更多的训练样例2),减少特征数3),增加特征数4),增加多项式特征5)... 查看详情

代码随想录算法公开课!

关注代码随想录的录友,基本都是跟着代码随想录一起刷题的。目前代码随想录的内容是完全开放在代码随想录网站,Github,和Gitee上,同时也出版了《代码随想录》纸质版。这套刷题顺序和题解帮助了非常多的... 查看详情

斯坦福公开课-机器学习1.机器学习的动机和应用(吴恩达andrewng)

文章目录0三个目标0先修课程要求基本工具1-网址2-邮箱3-本系列课程链接1机器学习的定义1-1非正式定义1-2正式的定义2监督学习(SupervisedLearning)2-1回归问题——连续拟合线(预测房子价格)2-2分类问题——离散数... 查看详情

人工智能免费公开课

本周四,人工智能免费公开课!1月18日(本周三),诚邀您参加唐宇迪老师的免费公开课~唐宇迪老师,计算机博士,专注于机器学习与计算机视觉领域,深度学习领域一线实战专家。参与多个国家级计算机视觉项目,多年数据... 查看详情

union-find(代码片段)

并查集前言来自知乎,Coursera上普林斯顿大学的算法公开课,稍微来博客上写写记记。课程资源:1.Algorithms,PartI2.Algorithms,PartII3.Algorithms,4thEditiondynamicconnectivity动态连通性问题,这里的连通是一个等价关系,满足:symmetric:自反性... 查看详情

分布式系统的状态

...态的必要性1.3.观察系统全局状态的困难性1.4.割集2.快照算法2.1.Chandy和Lamport的快照算法2.1.1.快照算法介绍2.1.2.进程pip_ipi​的标记接收规则2.1.3.进程pip_ipi​的标记发送规则2.1.4.快照算法的执行过程2.2.快照算法的执行示例2.3.快照... 查看详情

直通bat面试算法精讲课2

对于一个int数组,请编写一个冒泡排序算法,对数组元素排序。给定一个int数组A及数组的大小n,请返回排序后的数组。 测试样例:[1,2,3,5,2,3],6[1,2,2,3,3,5]classBubbleSort{public:int*bubbleSort(int*A,intn){//writecodeherefor(inti=0;i<n;i++){for(i... 查看详情

人工智能免费公开课,就在本周四!

本周四,人工智能免费公开课!1月18日(本周三),诚邀您参加唐宇迪老师的免费公开课~唐宇迪老师,计算机博士,专注于机器学习与计算机视觉领域,深度学习领域一线实战专家。参与多个国家级计算机视觉项目,多年数据... 查看详情