第一课——进阶高手的大门

悄然拔尖 悄然拔尖     2022-09-07     581

关键词:

理解程序的本质
程序是为了实际的问题而存在
从本质上而言,程序是解决问题的步骤描述

一小步的进阶
首先理解实际问题!
 确认问题类型
如:数值计算,求最小值个数
 确认求解的步骤
如:打开文件,读数据,关闭文件,计算和
问题:
如何判断求解步骤的好坏

通过下面的例子说明:

#include <stdio.h>
#include <malloc.h>

long sum1(int n)
{
    long ret = 0;
    int* array = (int*)malloc(n * sizeof(int));
    int i = 0;
    
    for(i=0; i<n; i++)
    {
        array[i] = i + 1;
    }
    
    for(i=0; i<n; i++)
    {
        ret += array[i];
    }
    
    free(array);
    
    return ret;
}

long sum2(int n)
{
    long ret = 0;
    int i = 0;
    
    for(i=1; i<=n; i++)
    {
        ret += i;
    }
    
    return ret;
}

long sum3(int n)
{
    long ret = 0;
    
    if( n > 0 )
    {
        ret = (1 + n) * n / 2;
    }
    
    return ret;
}

int main(void)
{
    printf("%ld\n", sum1(100));
    printf("%ld\n", sum2(100));
    printf("%ld\n", sum3(100));
    
    return 0;
}

三个函数输出相同,可是很明显,第三个高斯公式完成地最简单,至少目前给我们的直观感受是这样的,而第一个最没有必要,第二个属于大众型的。

 

 小结

程序是为了具体问题而存在的
程序需要围绕问题的解决进行设计
同一个问题可以有多种解决方案
如何追求程序的性价比
是否有可量化的方法判别程序的好坏?

第1课-进阶高手的大门

...上而言,程序是解决实际问题的步骤描述(2)一小步的进阶:理解实际问题  ①确认问题类型:如:数值计算,求最小值个数  ②确认求解步骤:如:打开文件,读数据,关闭文件,计算和2.如何判断问题求解步骤的好坏【... 查看详情

行人重识别计算机视觉进阶系列第一课基础知识

【行人重识别】🖐计算机视觉进阶系列🖐第一课基础知识概述行人重识别rank-1mAP损失函数交叉熵TripletLossHardNegative概述行人重识别(PersonRe-Identification)是利用计算机视觉技术判断图片或视频中是否存在特定行人的技术.行... 查看详情

产品经理进阶第一课,十分钟学会xmind8思维导图的使用

〝古人学问遗无力,少壮功夫老始成〞十分钟学会xmind8思维导图的使用,作为产品经理必会的软件之一,这里将会详细教会大家如何去使用xmind这个软件,助力大家在产品的道路上走的更远。常码字不易,出精品更难,没有特别... 查看详情

产品经理进阶第一课,十分钟学会xmind8思维导图的使用

〝古人学问遗无力,少壮功夫老始成〞十分钟学会xmind8思维导图的使用,作为产品经理必会的软件之一,这里将会详细教会大家如何去使用xmind这个软件,助力大家在产品的道路上走的更远。常码字不易,出精品更难,没有特别... 查看详情

行人重识别计算机视觉进阶系列第一课基础知识

【行人重识别】🖐计算机视觉进阶系列🖐第一课基础知识概述行人重识别rank-1mAP损失函数交叉熵TripletLossHardNegative概述行人重识别(PersonRe-Identification)是利用计算机视觉技术判断图片或视频中是否存在特定行人的技术.行... 查看详情

上云第一课,开年实验班,重磅上线!

玩转上云第一课,快速晋级为专业的“云上开发者”,四大专期助力快速云上实践!首期基础产品进阶专期:基于ECS搭建云上个人论坛、基于OSS搭建云上个人博客、使用Spark/Hive分析OSS-HDFS数据等实验已开启。上云... 查看详情

phtyon第一课

1.网络编程是应用程序的第一步,也就是一个程序大厦的地基。2.程序语言的语句语法结构相当于程序的砖和瓦。3.web框架则是程序大厦的梁和柱。4.设计和算法等于建造程序大厦的想法和技巧。  查看详情

《开学第一课》观后感—吕中琪

    伴随着《开学第一课》的开场曲,我观看了2018年以“创造向未来”为主题的《开学第一课》。    开学第一课,一共有四堂课。    第一堂课是以“梦想”为主题,主讲人是被誉为... 查看详情

重学java基础第一课:解决大家的疑问

  查看详情

重学java基础第一课:解决大家的疑问

  查看详情

bashshell第一课

    自学shell,又被老师说教,上英语课不好好学习英语四级怎么过,哈哈,那也没有数据对我的吸引力大啊,为了爱与梦想!!!     回忆一下文件格式: 文件名的扩展名为.sh              ... 查看详情

javaweb第一课

了解javawebJavaWeb应用由一组Servlet、HTML页、类、以及其他可以被绑定的资源构成。它可以在各种供应商提供的实现Servlet规范的Servlet容器中运行。JavaWeb包含如下内容:ServletJsp实用类静态文档如HTML、图片等描述Web应用的信息(web.xm... 查看详情

java第一课

JAVA第一课电脑识别的进制:二进制,八进制,十六进制  二进制来表示高低电压,类似于抗战时期的发报机。2进制的存储8进制和16进制:计算器,在计算的时候有一定的临时存储,8位或者16位禁止的存储十六进制之后,... 查看详情

html第一课

<标签名属性>内容</标签名><标签/>静态网页与动态网页的区别:是否从数据库提取数据相对路径跟绝对路径../代表高一级的&nbsp牛逼的空格<fontface="微软雅黑"color="#000000"size="7">变换字体</font><strong>加... 查看详情

第一课

Python是什么类型的语言?Python是脚本语言脚本语言(Scriptinglanguage)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序。以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则,基于这项原则,... 查看详情

第一课:超级helloarduino.使用多种知识串联一个入门小项目,很适合初学第一课哟.(代码片段)

开关+led+旋钮电位器的实验视频已经购买Arduino开发版的同学,开始上课~来一场紧张刺激的helloArduino之旅吧~前言开发工具的下载,安装,使用都很简单,我这里就不赘述了,附上官方的说明,跟着步骤来,十分钟搞定~相关连接ide下载... 查看详情

opencv第一课(安装与配置)

OpenCV第一课(安装与配置)win10,opencv-2.4.13,安装,vs2013,配置下载安装软件官网OpenCV下载地址下载最新版本,我下载的是opencv.2.4.13,然后解压安装,我写的路径是D:ProgramFiles。注意本文中绿色标注的要换成你自己的安装路径。这... 查看详情

萌新接触前端的第一课——html

HTMLweb服务本质(好吧这个先不用知道也可以)importsocketdefmain():sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)sock.bind((‘localhost‘,8081))sock.listen(5)whileTrue:print("serverisworking.....")conn,address=sock. 查看详情