摘要:
希尔排序 通过不断缩小·基数进行每个基数长度的插入排序。 递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法,因为前面的排序与后面的排序无关。 稳定排序:在排序过程中,如果两个键的值相同,那么他们的相对位置不发生变化。不符合该规则的排序算法不是稳定排序算法。 题目 本题要 阅读全文
摘要:
在设计的过程中,我们要做到自上而下的设计,在设计的每个步骤中,尽可能地使用级别较高的表达方法来表示概念和隐藏细节,直到必要的时候再进一步的细化。文中的这段话让笔者想起SICP中教授们试图传达给学生们的一个屠龙之术——“推迟做出决定的时机,因为只有尽可能地退出做出决定的时机,你之后的行为才不会被当下做 阅读全文
摘要:
进度落后往往并不是因为大灾难,而通常只是因为那些仅仅会导致延迟半天到一天的事件的堆积最终致使整个进度延期一年。 对于里程碑的确立,必须是具体的,特定的,可度量的事情,能够清晰定义。不能清晰定义的里程碑是难以处理的负担。 关键路径技术是衡量是否延期的重要方法,每个人都要尽量让自己的工作远离关键路径。 阅读全文
摘要:
人们总是希望一切的事情都尽在掌握之中,所以总是试图在制定完美计划之后一路顺风顺水地执行下去。但是软件维护是一个提高混乱度(增加熵)的过程,所以出现前进两步,后退一步;甚至前进一步,后退一步都是很正常的。而且随着维护的深入,会发现用在修复原有设计上瑕疵的工作量越来越少,而早期维护活动本身所引起的漏洞的 阅读全文
摘要:
作者将巴比伦塔失败的原因之一归结于缺乏交流,缺乏组织。而我们能从中得来的教训之一在大型软件开发,要无比重视交流的重要性。本书初版之后四十余年的现在,人们所发明的很多技术和规范很大程度上都是为了加强“交流”,减少不必要的交流,增加交流的效率——团队组织的目的是减少所需的交流和合作的数量。制定规范也是。 阅读全文
摘要:
第五章——画蛇添足: 第五章主要阐述了结构师在开发第二个系统时,容易被诱惑开发更多的功能,从而达到不好的效果, 这应该被避免。大部分结构师在开发第一个系统时,由于技术不够成熟,所以他会谨慎仔细地工作。对 于不断产生的装饰和润色功能,大部分都被搁置在一 边,作为“下一个”项目的内容。而在开发第二个系 阅读全文
摘要:
《人月神话》16章提出因为软件工程是一个超级复杂的系统,所以断言没有银弹。软件开发中存在着4个天生的根本困难——复杂度、一致性、可变性和不可见性,无论是在技术还是管理方法上,都看不出有任何突破性的进步,能够保证在十年内大幅度地提高软件的生产率和可靠性。 银弹一般指银色子弹,银色子弹(英文:Silve 阅读全文
摘要:
1、爬取生成txt文件(整本小说) 2、图形化界面的实现 阅读全文