为刚開始学习的人答效率的问题

  本文来自读者对我博文的评论。

遇到主动思考者,提出的主动思考过的问题,老贺是相当的兴奋。

  完整的对话见《C语言及程序设计实践參考——n=a!+b!+c!》中二楼评论。

  

【问题】

  老师,我尝试着%¥#&……%……,但程序变得很多其它了。这样还会提高效率吗?

【答复】

  非常高兴你能问出这样的问题。这样的主动思考,在我的实体课学生中真也不多。这牵涉到我们对于效率的多维认识。

  多数情况下。效率指计算机的效率。要分时间效率(用时尽可能少)和空间效率(执行中少占用内存空间)。而注重时间效率的居多。

于是,源码的行数多少,并非决定时间效率高的关键。仅仅要终于目标代码,让计算机执行的操作少。时间角度自然就快。而还有一维度的效率,我们也要认识到。那就是人的效率。计算机系统是由计算机和人综合起来的,实际上,人的效率更值钱。这在如今人力成本添加的情形下。对一些公司非常关键的事。对于不算太复杂的问题,或者计算机效率低,但也足以满足需求的情况下,作为开发者的“人”,不必为计算机的效率而花太多功夫。一个系统中最关键的环节,影响到系统性能的“瓶颈”部分。才值得去耗费大量的人力,以及绝顶聪明的脑袋,去追求计算机的效率。这也就是非常多0基础的程度员体会不到学算法的必要性的原因(虽然好的0基础程序猿。算法素质无时不刻在起作用)。你的解决方式,显然计算机的效率高了。人的效率低了。

更要命的是。算法弄复杂了,出错的可能性更大了。不论什么的project,遵循“简单即是美”的法则。

  回答这样的问题。高兴。就多说几句。

  当然,作为学习者,尤其是刚開始学习的人,你的这样的“人力低效率”。恰从学习角度是最高效率的。对训练思维的价值是相当大的。

将这样的思考和质疑继续下去!

时间: 2025-01-31 06:59:48

为刚開始学习的人答效率的问题的相关文章

JavaScript 刚開始学习的人应知的 24 条最佳实践

原文:24 JavaScript Best Practices for Beginners (注:阅读原文的时候没有注意公布日期,认为不错就翻译了,翻译到 JSON.parse 那一节认为有点不正确路才发现是 2009 年公布的文章,只是还是不错的啦. 另外,文章虽说 24 条最佳实践,事实上仅仅有 23 条.不知道原作者怎么漏了一条. ) 1. 优先使用 ===.而不是 == JavaScript 使用两种相等性操作符:===,!== 和 ==,!=. 通常觉得做比較的最佳实践是使用前一组操作

wxWidgets刚開始学习的人导引(6)——wxWidgets学习材料清单

wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxSmith进行可视化设计附:学习材料清单 学习材料清单 wxWidgets的官网:http://www.wxwidgets.org/downloads/ wxWidgets的下载页面:http://www.wxwidgets.org/downloads/ 在线教程<wxWidgets tutoria

wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxSmith进行可视化设计附:学习材料清单 3 wxWidgets应用程序初体验 本文中全部的体验,在Code::Blocks中进行. 为了在Code::Blocks中编译执行C++写的wxWidgets程序,须要再做些设置. 首先,须要在环境变量里增加一个wxWidgets根文件夹环境变量.设置方法

Linux内核project导论——linux学习和职业曲线(刚開始学习的人,中级,高级都可參考)

Linux世界介绍 给自己定级 门外汉: 不会安装操作系统 不会用虚拟机(安装和使用) 入门级: 熟悉常见的发行版,甚至装过而且能用一些特殊发行版(比如kali)做过一些简单的图形界面的使用. 会一些最基础的命令(比如cd.ps.top.ls.ifconfig等这个级别的) 基础级: 能够使用一些常见的命令(touch.tail.date.find.du.fdisk.less.pidof等这个级别的命令) 图形界面操作的比較熟练.而且能够相应一部分的后台命令. 知道一些经常使用的配置文件的作用(

oracle刚開始学习的人经常使用操作100问

1. Oracle安装完毕后的初始口令?   internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp 2. oracle中的裸设备指的是什么? 裸设备就是绕过文件系统直接訪问的储存空间. 3. 请问怎样分辨某个用户是从哪台机器登陆ORACLE的? SELECT machine , terminal FROM V$SESSION; 4. 用什么语句查询字段呢? desc table_name 

刚開始学习的人非常有用:struts2中将jsp数据传到action的几种方式

先给上struts.xml代码: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <strut

VmWare 与 宿主主机通信 STEP BY STEP (适用于刚開始学习的人)

基本原理 在虚拟机中有三种通信方式,例如以下图所看到的 1. Bridged(桥接模式) 在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机,它能够訪问网内不论什么一台机器只是你须要多于一个的IP地址,并且须要手工为 虚拟系统配置IP地址子网掩码,并且还要和宿主机器处于同一网段,这样虚拟系统才干和宿主机器进行通信 假设你想利用VMware在局域网内新建一个虚拟server,为局域网用户提供网络服务.就应该选择桥接模式 2. NAT(网络地址转换模式) 使用NAT模式.就是让

Servlet之生命周期【入门版(刚開始学习的人必看)】

6,Servlet的解说 6.1Servlet生命周期 ,继承HttpServlet init方法(初始化Servlet)将来能够做一些初始化工作 service方法(处理请求) 一般不须要重写service方法, Servlet会依据请求时的方式 调用相应方法 get请求调用doGet方法,post请求 调用doPost方法 重写doGet.doPost方法就可以 假设不重写service方法 destory方法(销毁)不用管 注意:我们也能够直接继承GenericServlet不继承Http

OpenCms创建站点过程图解——献给OpenCms的刚開始学习的人们

非常多人都听说了OpenCms,知道了它的强大,索性的下载安装了,最终见到了久违OpenCms,看到了它简洁的界面,欣喜过后却不免一脸茫然,这个东西怎么用,我怎么用它来建站,从哪開始,无从下手,找资料,少之双少,几经周折后,迫于时间等诸多因素,非常多人无奈地选择了放弃…… 希望这篇文章能够对OpenCms的追随者们有所帮助,但这也仅仅是OpenCms的皮毛,把它的强大功能为已所用还须要我们付出很多其它的努力…… 一.切换到“/sites/”下,创建网站目录“testWeb” 输入目录的标题,这个