让人感动的代码

在算法导论的第一节课上,老师给我们展示了下面两段代码。突然想到很久之前看的一篇文章里提出的一个问题,是否有这样一段代码,能让你感动。看到这段代码后,起码这三年里,我找到了能让我感动的代码。

代码是两个函数的对比

//参数 二维数组,数组的行数m,数组的列数n
void method1(int[][] array,int m,int n){
    for(int row=0;row<m;row++){
        for(int column=0;column<n;column++){
            System.out.println(array[row][column]);
        }
    }
}

void method2(int[][] array,int m,int n){
    for(int column=0;column<n;column++){
        for(int row=0;row<m;row++){
            System.out.println(array[row][column]);
        }
    }
}

接着老师问了一个问题:这两个方法直接有什么区别?

同样的方法,仅仅是改动了两个参数,在数据量大的时候,执行效率相差百倍以上。简简单单的两个遍历二维数组的函数,相差百倍的运算速度里面透露的,却是cpu缓存的设计。

时间: 2024-10-10 04:53:18

让人感动的代码的相关文章

两人合作之代码规范

代码规范 现代软件经过几十年的发展,一个软件由一个人单枪匹马完成,已经很少见了,软件都是在相互合作中完成的.合作的最小单位是两个人,两个工程师在一起,做的最多的事情就是"看代码",每个人都能看"比人的代码",并且发表意见.但是每个人对于什么是"好"的代码规范未必认同,这时我们有必要给出一个基准线-----什么是好的代码规范和设计规范. 1,写干净整洁的代码 1.1 代码格式化,包括多级代码缩进.大括号(比如C系代码),为了提高代码的美观型和易读性

看多人合作编辑代码

本星期,继上次的单人代码编辑,进而了解多人编辑同一个项目的代码过程. 其中,最为优先的是个人编辑代码的风格.因为是多人合作,个人编辑的代码要不仅自己可以看清楚,同时也要让合作者也能理解你编辑的代码含义.其原则是:简明,易读,无二义性..其中包含着对缩进,行宽的限制,括号,断行,分行,命名,下划线,大小写,注释等的使用. 个人编辑好后,首先要通过代码复审.这又包括自我复审,同伴复审,团队复审等.其目的所在则是:查找代码错误,逻辑错误,算法错误以及潜在错误,发现可改进的地方,再加上相互间交流教育.主

你加班太多是因为你的代码写的烂

今天看见一篇不错的文章,给大家分享一下 作为一名程序员,我渴望我加入的应该要是一支"30%的时间在写代码,而70%的时间在喝着咖啡讨论着如何将产品做好"的团队.我觉得软件工作应该成为一项技术和艺术融合的高智力活动,我们的项目经理应该是一个高度理解质量.范围和进度客观规律的明白人,"高效工作,快乐生活"才应该是我们的座右铭. 可现实情况却是,团队在一边超负荷的做着需求,一边改着没完没了的Bug.过点前夕,项目经理熬着通红通红的眼睛盯着我们整晚整晚的加班,质量专员一遍一

构建之法学习(第四章 两人合作)

第四章 两人合作 1.代码规范  1)代码风格规范.主要是文字上的规定,看似表面文章,实际上非常重要. *原则:简明,易读,无二义性 *缩进:4个空格 *行宽:行宽必须限制,可以限定为100字符 *括号:在复杂的条件表达式中,用括号清除地表示逻辑优先级 *断行与空白的{}行:推荐格式如下 if ( condition ) {        DoSomething(); } else {       DoSomethingElse(); } *分行:不要把多条语句放在一行上.并且,不要把多个变量定

超详细的Xcode代码格式化教程,可自定义样式

为什么要格式化代码 当团队内有多人开发的时候,每个人写的代码格式都有自己的喜好,也可能会忙着写代码而忽略了格式的问题. 在之前,我们可能会写完代码后,再一点一点去调格式,很浪费时间. 有了ClangFormat插件后,就可以一键把代码格式化成统一的样式,不仅节省了时间,也使得代码更规范.我们还可以定制自己喜欢的样式. 安装ClangFormat插件 可以手动安装(下载GitHub项目编译),也可以用Alcatraz(插件管理器)安装,都很简单,具体可以看我的文章<Xcode方便开发的插件推荐>

作业三:代码规范

对于是否需要有代码规范,请考虑下列论点并反驳/支持: 1. 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 对于以上观点我是反对的 .如果说这些规范都是官僚制度产生的,那么更应该一丝不苟的执行,官僚制度,往大了说是法,应该无条件执行,往小了说是规范,可以帮助我们规范在打代码时自身不好的习惯.也许在编辑代码时,会比随意敲打耽误些许时间,但在检查错误时,规矩的编排格式,可以一目了然的看到自己的错误,为自己节省了更多的时间,会提高开发效率. 2. 我是个艺术家,手

【转载】关于烂代码的那些事

http://kb.cnblogs.com/page/526768/ ============上篇============ 1. 摘要 最近写了不少代码,review了不少代码,也做了不少重构,总之是对着烂代码工作了几周.为了抒发一下这几周里好几次到达崩溃边缘的情绪,我决定写一篇文章谈一谈烂代码的那些事.这里是上篇,谈一谈烂代码产生的原因和现象. 2. 写烂代码很容易 刚入程序员这行的时候经常听到一个观点:你要把精力放在ABCD(需求文档/功能设计/架构设计/理解原理)上,写代码只是把想法翻译成

关于烂代码的那些事(上)

1. 摘要 最近写了不少代码,review了不少代码,也做了不少重构,总之是对着烂代码工作了几周.为了抒发一下这几周里好几次到达崩溃边缘的情绪,我决定写一篇文章谈一谈烂代码的那些事.这里是上篇,谈一谈烂代码产生的原因和现象. 2. 写烂代码很容易 刚入程序员这行的时候经常听到一个观点:你要把精力放在ABCD(需求文档/功能设计/架构设计/理解原理)上,写代码只是把想法翻译成编程语言而已,是一个没什么技术含量的事情. 当时的我在听到这种观点时会有一种近似于高冷的不屑:你们就是一群傻X,根本不懂代码

Blender 之 Splash 代码分析

注:以下内容基于 Blender 2.7x 版本工程,其它低版本可能有改动. Blender启动完成时,会出现一个画面,英文叫Splash.默认是打开的,可以在设置里关闭.在文件菜单里点击用户首选项(快捷键Ctrl + Alt + U),在弹出的窗口第一个Tab页面,也就是界面(Interface)的右下角,有一个选项 Show Splash,默认打了勾,关闭然后最下一行的 Save User Settings.这样,下次启动的时候就不会出现Splash. 假设你已经下载好了blender工程代