《编程珠玑》阅读笔记03

该书的第三个大部分讲述的是产品。前面的两个部分,为第三部分打下基础,前两部分讲述如何编程,以及怎样编程可以是程序效率更高,效果更好,而这一部分则是将前两部分所讲述的内容应用到编程中去,通过实际应用讲述章节探讨的技术所聚焦的焦点。

在第三部分中,11章讲述了几个一般用途的排序算法,12章讲述了一个来自实际应用的特定问题,并展示了如何以各种不同的方法解决这个问题,13章讲述了第12章中所提到的一个方法,就是将问题看成是集合所表示中的一个问题。14介绍堆数据结构,并展示了它如何为排序和优先队列获得高数的算法,15章解决了在非常长的文本字符串中查找单词或词组时所涉及的几个问题。

在11章排序中,着重讲了集中不同的快排,并把几种快排的性能列出来。供我们参考。

 

 12章通过一个小的问题,通过一个小的程序进行解决。而作为一个合格的程序员,仅有代码是不够的,我们更多的是需要思考正如书中所说,“有的人宁愿花一天来编码,也不乐意花一个小时思考,一个小时编码。”

13章的问题是:在不储存其他相关数据的情况下,如何存储一组整数。问题虽小,却引发了数据结构实现中的关键

 14章讲了数据结构中的堆。通过堆来解决数据结构中的两个重要问题。排序,通过堆排序来排序n个元素的数组所需的时间肯定不会超过0(nlogn),并且它只需要使用几个字的额外空间。优先队列。堆通过在集合中插入新元素或从集合中提取最小的元素来维护元素集合。
每个操作所需的时间为O(logn)。

个人感受:

在过去的学习中,自己也写过一些成型的作品,但每次给同学,家人们试用的时候, 最多的反馈就是,不好用,不是说死机,就是说闪退,就以寒假制作的记账本一样,给妈妈用,妈妈一直说不好用,老卡,有时候闪退,或者有时候数据存不上。而出现这些问题的根本,就是我在编程的时候,并不考虑程序是否足够简单,是否用最短的代码实现最多的功能。

正如我所说的那样,这样做,只会浪费你更多的时间,让你的程序不稳定,出现更多的bug。

如今已经看完一本书,书中最大的主题就是效率,不管是人写代码的效率,还是程序完成任务的效率,效率尤为重要,在今后的学习中,要花更多的时间去思考,而不是为了编程而编程。

原文地址:https://www.cnblogs.com/yangqqq/p/13058994.html