`
fffddgx
  • 浏览: 38749 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

编程珠玑--程序员思维和排序的作用

阅读更多

一、程序员思维-三思而后coding。

优秀的程序员都有点懒:他们坐下来并等待灵机一动的出现而不急于使用最开始的想法编程 。 

相信大部分程序员都遇到过这种情况:写了半天的程序发现一开始就想错了,不得不无奈的推倒重来。我认为,无论多简单的问题都会有很多种解决方案,我们要时刻提醒自己能不能写的更好,能不能让代码跟简练,更易读,更具有扩展性,容错性。有人说精炼和易读、扩展性、容错性是相互排斥的,其实不然。越精炼的代码越易读,因为你的逻辑清楚。越精炼的代码扩展性越好,因为程序已经被打碎封装,重用性扩展性会更好。精炼的程序容错性能会更高。用最少的代码,写出最有效的程序,是我们每个程序员都应该追求的目标。而要达到这个目标首先要养成的就是三思而后 coding 。程序只有注入了我们思考后的灵机一动才会更美。

二、排序的作用

排序是计算机科学的最基础的根基之一。我们学了这么多种排序,选择排序、冒泡排序、希尔排序、快速排序、归并排序等等,排序到底能干什么呢?

1、实现我们排序的需求。这个功能最简单明了。

2、排序可以实现分类。

比如男人女人纯爷们要分类。我们可以用排序来实现。女人代表1,男人代表2,纯爷们代表100。我们对这100个人排序,排序完,自然也完成了分类。

这个例子太简单?来个复杂点的。请从字典里找出所有的变位词。什么叫变位词?比如one、neo、eno。思考下如何解决这问题。三思而后读!




利用排序就可以实现对词典中变位词分类。比如有如下序列:one,two,three,owt,eerht,neo,wot。

1)为每个单词做标注,也就是起个代号。起代号规则:将单词字母从大到小排序(按字母升序)如three->eehrt。

这样序列就变成了:one->eno,two->otw,three->eehrt,owt->otw,eerht->eehrt,neo->eno,wot->otw.

2)按照标注(红色)字母顺序所有单词排序。three->eehrt,eerht->eehrt,one->eno,neo->eno,two->otw,owt->otw,wot->otw

3)输出:three,eerht

one,neo

        two,owt,wot

分类成功。

3、排序是其他算法的基础。

比如二分查找。二分查找是计算机科学中用的非常多的一种思想。而排序确是其前提。

排序还有什么其他作用?我们一起思考吧。

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    编程珠玑-中文第二版

    1. **简洁与精炼**:正如标题“编程珠玑”所暗示的那样,本书追求的是将复杂的概念和技巧以最简练的方式呈现出来。这种风格使得即便是看似简单的算法或代码片段,也能包含深刻的设计理念和优化思路。例如,在书中...

    编程珠玑-英文版+中文版+source code

    《编程珠玑》之所以成为许多程序员的案头书,不仅因为它涵盖了编程中的许多重要主题,如算法设计、数据结构、性能优化以及编程实践,更重要的是,它教会我们一种解决问题的思维。Jon Bentley的每一篇“珍珠”,都像...

    编程珠玑 编程珠玑 编程珠玑 编程

    总的来说,《编程珠玑》是一本全面而深刻的编程指南,它不仅教授技术细节,更注重培养程序员的思维方式和解决问题的能力。无论是对于想要提升编程技能的个人,还是希望构建高效开发团队的领导者,这本书都是不容错过...

    编程珠玑(PDF带目录)

    在《编程珠玑》中,作者首先介绍了算法设计和分析的基础知识,例如,排序和搜索。排序算法,如冒泡排序、插入排序和快速排序,是程序员入门的必修课,而搜索算法的讲解则强调了在数据集中快速定位信息的能力。本书...

    编程珠玑(经典)

    《编程珠玑》的PDF版本包含了原书的所有内容,包括示例代码和练习题,是学习和提升编程技能的理想资料。无论你是初学者还是经验丰富的开发者,都可以从中受益匪浅,不断提升自己的编程技艺。 总的来说,这本经典...

    编程珠玑源代码

    通过研究《编程珠玑源代码》,不仅可以深化对C语言和C++的理解,还能学习到如何高效地解决实际问题,提升编程思维,从而成为一名更出色的程序员。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    编程珠玑 第二版 源代码

    《编程珠玑》第二版是计算机科学领域的一本经典著作,由Jon Bentley撰写,它以其深入浅出的方式探讨了程序设计中的诸多问题和解决方案。这本书不仅涵盖了算法和数据结构,还涉及了软件工程的实践与智慧,对于程序员...

    编程珠玑 第二版 修订版 epub

    6. **程序设计思想**:《编程珠玑》提倡模块化设计、代码复用和抽象思维,鼓励程序员以更高级别的视角看待问题,而不是陷入低级实现的细节中。 7. **编程实践**:除了理论知识,本书也提供了丰富的实例,让读者能够...

    编程珠玑编程珠玑续(美)本特利(jb51.net).PDF

    这本书是《编程珠玑》的续篇,延续了前作对编程艺术和算法设计的深入探讨,旨在提升程序员的思维能力和代码质量。 1. **编程技巧与实践**: 本书强调编程不仅仅是关于语法和规则,更关乎解决问题的艺术。通过一...

    《编程珠玑》第2版中文PDF+源代码

    《编程珠玑》是计算机科学领域的一本经典著作,作者是Jon Bentley,他在书中通过一系列有趣的问题和解决方案,深入浅出地探讨了程序设计的艺术和技巧。这本书的第二版中文PDF和源代码的提供,为中国的程序员和计算机...

    编程珠玑源码

    《编程珠玑》是计算机科学领域的一本经典著作,作者是Jon Bentley,它以其深入浅出的讲解和富有挑战性的编程问题,深受程序员们的喜爱。这本书主要探讨了如何有效地处理和存储大量数据,以及如何在实际编程中运用...

    编程珠玑(美)Jon Bentley

    总之,《编程珠玑》是一本全面而深入的编程指南,它不仅仅是一本教科书,更是提升编程思维和解决问题能力的宝贵资源。无论是初学者还是经验丰富的开发者,都能从中受益匪浅,不断提升自己的编程技艺。通过阅读这本书...

    编程珠玑高清pdf版.rar

    《编程珠玑》不仅关注技术细节,还强调了程序员应具备的思维方法和问题解决能力。它教导读者如何通过抽象和分解复杂问题来寻找简洁高效的解决方案,这种解决问题的策略在现代软件开发中仍然具有很高的价值。 阅读...

    编程珠玑中文版 第二版 带源码

    3. **输入/输出处理**:在实际编程中,高效地处理输入和输出往往被忽视,但《编程珠玑》对此进行了深入探讨,包括缓冲区管理、格式化输出和大规模数据读写策略等。 4. **磁盘I/O优化**:针对磁盘I/O效率低下的问题...

    编程珠玑中文 第二版 非扫描版

    中文版的《编程珠玑》第二版修订版为非扫描版,意味着它是由专业人员翻译并排版的高质量版本,具有清晰的文本和良好的可读性,同时包含目录,方便读者快速定位到感兴趣的内容。 书中的主题涵盖了数据结构、算法分析...

    编程珠玑pdf

    2. **数据结构与算法**:《编程珠玑》深入讨论了多种数据结构,如数组、链表、树和图等,以及与之相关的经典算法,如排序、查找和优化。这些基础知识对于提升编程能力至关重要。 3. **程序性能优化**:作者强调了在...

    算法导论中文版第二版+编程珠玑

    《算法导论》中文版第二版与《编程珠玑》是两本在计算机科学和软件工程领域具有极高影响力的书籍。这两本书涵盖了丰富的理论知识和实践经验,对于程序员和计算机科学学者来说,是提升技能和理解力的重要资源。 ...

    《编程珠玑》(Programming Pearls)课本和习题代码实现

    《编程珠玑》是计算机科学领域的一本经典著作,作者Jon Bentley通过一系列精心设计的问题和解决方案,探讨了...总的来说,《编程珠玑》的代码实现提供了丰富的学习资源,对提升程序员的思维能力和编程水平大有裨益。

    《编程珠玑》部分源代码Java实现

    总的来说,《编程珠玑》的Java实现源代码是一个宝贵的教育资源,它将理论知识与实际代码相结合,是提升编程思维和实战能力的理想资料。通过深入研究这些代码,你将不仅能够解决书中的问题,还能将这些智慧应用到自己...

Global site tag (gtag.js) - Google Analytics