随笔分类 - Programming Abstractions in C
摘要:《Programming Abstractions in C》学习第80天,p338-p346,总计9页。 一、技术总结 栈的实现包括入栈、出栈、判断栈是否为满,判断栈是否为空等。作者结合RPN计算器来实现,稍显无聊。 /* * File: rpncalc.c * * This program si
阅读全文
摘要:《Programming Abstractions in C》学习第79天,p331-p337,总计7页。 一、技术总结 /* * File: stack.h * * This interface defines an abstraction for stacks. In any * single
阅读全文
摘要:《Programming Abstractions in C》学习第78天,p327-p330,总计4页。 一、技术总结 1.ADT(抽象数据类型) p328, A type defined in term of its behavior rather than its represnetation
阅读全文
摘要:《Programming Abstractions in C》学习第77天,p312-p326,总计15页,第7章完结。 一、技术总结 第7章主要讲算法分析——引入时间复杂度这一概念来评估算法的快慢。时间复杂度使用大O符号来表示。 第7章以排序算法为示例,包含:选择排序,归并排序以及快速排序,这些基
阅读全文
摘要:《Programming Abstractions in C》学习第76天,p308-p311总结,总计4页。 一、技术总结 1.快速排序伪代码 #include <stdbool.h> static int Partition(int array[], int n); /* * Implement
阅读全文
摘要:《Programming Abstractions in C》学习第75天,p306-p307总结,总计2页。 一、技术总结 1.Quicksort algorithm(快速排序) 由法国计算机科学家C.A.R(Charles Antony Richard) Hoare(东尼.霍尔)在1959年开发
阅读全文
摘要:《Programming Abstractions in C》学习第74天,p303-p305总结,总计3页。 一、技术总结 1.时间复杂度分类(complexity classes) Class Notation Example constant O(1) Returning the first
阅读全文
摘要:《Programming Abstractions in C》学习第73天,p293-p302总结,总计10页。 一、技术总结 1.时间复杂度 (1)quadratic time(二次时间) p293, Algorithms like selection sort that exhibit O(N^
阅读全文
摘要:《Programming Abstractions in C》学习第72天,p283-p292总结,总计10页。 一、技术总结 1、anylasis of algorithms 算法分析——即判断程序的效率(efficiency)。 2、mathematical induction(数学归纳法) 3
阅读全文
摘要:《Programming Abstractions in C》学习第71天,p258-p282总结,总计25页。 一、技术总结 完成第chapter 6的学习。本章主要讲解回溯算法,并通过“maze(迷宫)”和“minimax strategy(极小化极大策略)”两个实际的例子来讲解。回溯算法简单来
阅读全文
摘要:《Programming Abstractions in C》学习第70天,p254-p257总结,总计4页。 一、技术总结 1.minimax strategy(极小化极大算法) p255, This idea--finding the position that leaves your oppo
阅读全文
摘要:《Programming Abstractions in C》学习第69天,p248-p253总结,总计6页。 一、技术总结 “A generalized program for two-player games”如标题所示,该小节强调要学会从一个复杂的程序中抽象出通用的内容——这也是本书的主旨——
阅读全文
摘要:《Programming Abstractions in C》学习第68天,p246-p247总结,总计2页。 一、技术总结 本章通过“the game of nim(尼姆游戏)”,这类以现实生活中事物作为例子进行讲解的情况,往往对学习者要求比较高,需要学习者具备一定的人文、历史知识或专业知识,如果
阅读全文
摘要:《Programming Abstractions in C》学习第67天,p242-p245总结,总计4页。 一、技术总结 6.2小结主要讲回溯算法及递归算法在迷宫求解中应用,当然,理解然后用代码实现出来还是有些难度的。不过,这并不影响我们进行下一节6.3的学习。 二、英语总结 1.skeptic
阅读全文
摘要:《Programming Abstractions in C》学习第66天,p235-p241总结。 一、技术总结 1.backtracking algorithm(回溯算法) (1)定义 p236, For many real-world problem, the solution process
阅读全文
摘要:《Programming Abstractions in C》学习第65天,p202-p234总结。 一、技术总结 完成第五章学习,第五章介绍递归在实际问题中的进一步应用,例如汉诺塔问题,数学中的排列问题,更有难度。使用递归解决问题时有时候需要借助wrapper function。 二、英语总结 1
阅读全文
摘要:《Programming Abstractions in C》学习第64天,p196-p201总结。 一、技术总结 很难,唯有继续往下看才能让其变容易。 二、英语总结 1.psychologically是什么意思? 答: (1))psychology > psychological > psycho
阅读全文
摘要:《Programming Abstractions in C》学习第63天,p196总结。涉及到编程之外的知识,依然是读起来很费劲,需要了解作者在书中提到的人物(Edouard Lucas)、地点(Benares)、神话传说(Brahma)等等。虽然深知自己做不到对人文知识,历史知识精通,但也希望能
阅读全文
摘要:《Programming Abstractions In C》学习第61天,p181-p183总结。 一、技术总结 1.linear search algorithm 2.lexicographic order(字典顺序) 3.binary search algorithm(二分查找算法) /* *
阅读全文
摘要:《Programming Abstractions In C》学习第60天,p179-p180总结。 一、技术总结 1.palindrome(回文) (1)包含单个字符的字符串(如"a"),或者空字符串(如" ")也是回文。 (2)示例:“level”、"noon"。 2.predicate fun
阅读全文