博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《编程珠玑》读书笔记(2,3)
阅读量:7066 次
发布时间:2019-06-28

本文共 632 字,大约阅读时间需要 2 分钟。

第二章 啊哈!算法

不要急于动手写代码,坐下来,耐心思考,等待灵机一动的时刻。

匆忙之间写出的代码,维护性、可读性以及性能,都可能存在很大的不足。而优秀的程序员总是能够把握住思考和编程之间的恰当时机。

这一章用来展开的三个问题是大文件查找(40亿个整数中找不存在的那个)、向量旋转和变位词。

大文件查找问题,对二分查找进行了展开。二分查找的性能极其优异,在查找元素的时候应该优先想到它。当内存空间不够的时候,可以考虑对需要处理的元素进行预处理,这也是常见的操作之一。

绝大部分的问题都可以用基本操作来解决,当你坐下来思考,尝试获得解决问题的灵感时,可以思考需要解决的问题是什么,以及可能涉及的基本操作。

第三章 数据决定程序结构

能够用小程序实现的,就不要用大程序来做。

高级语言和各种工具极大丰富的今天,很多功能不一定要写代码来实现,完全可以通过Excel或者其他工具来做。

比如,简单地排序和提取数据,Excel会比bash、perl等脚本语言更直观也更好上手。

另外,如果穷举能解决大部分问题,就不要太费心去实现复杂的逻辑。比如,给定年份和该年中的某一天,要获取对应的月份,直接在内存中存储一个映射关系会比实现复杂的逻辑更方便。

并且,更一般的问题也许更易于实现。

也就是说,在尝试解决某个特定的问题之前,可以先尝试解决某一类问题。

另一方面,写代码的时候,可以审视一下,看看是否存在重复性部分。把这些部分抽取出来,更容易发现问题,也更便于后续的维护和拓展。

转载地址:http://dwoll.baihongyu.com/

你可能感兴趣的文章
对 PL/SQL开发调试的想法
查看>>
村姑的Beta 2.0,TT。
查看>>
Sqlldr使用介绍
查看>>
mongodb中直接根据某个字段更新另外一个字段值
查看>>
java 生成验证码的两个好例子(转)
查看>>
CSS魔法堂:再次认识font
查看>>
maven里如何根据不同的environment打包
查看>>
linux tar命令疑难解析(经验总结)
查看>>
HBuilder复制PHP项目后,【转到定位】功能失效
查看>>
Web.config文件中节点的配置数值读取的2种方法,哪种更快?
查看>>
PHP中include和require的区别详解
查看>>
动态织入的AOP实现
查看>>
spring 配置扫描多个包
查看>>
Symbian开发入门
查看>>
学习笔记:Oracle的trace文件可见性
查看>>
北京某公司.NET面试题
查看>>
解决异常“SqlParameterCollection 只接受非空的 SqlParameter 类型对象。”
查看>>
PostgreSQL通过mysql_fdw访问MySQL数据库
查看>>
REST风格的原则
查看>>
Struts分页的一个实现
查看>>