基本概念
一、数据结构
1)前置
抽象化过程(procedural abstraction):把问题看成一个黑盒模型,人们(/用户)不需要关心这个黑盒里面的细节,只需要知道如何使用它。
数据抽象化(data abstraction)/ 抽象数据类型(abstract data type,ADT):是关于我们如何看待和处理数据的一种逻辑描述。它允许程序员仅仅关心这个数据代表的是什么(也就是它的声明(states)以及它的方法(methods)),而不用关心最后如何构建它(implementation- independent)。类似于上面提到的概念:抽象画过程(procedural abstraction)。它们都封装了具体的实现过程。
实现一个抽象数据类型,一般就是指代数据结构(data structure)。
2)计算机
在计算机科学领域,数据结构就一种有利于合理和高效地在计算机内存里组织和储存数据的方式方法。它是一种有组织和有效率地管理和操作数据的工具。
这里有很多数据结构,各自有其优缺点。常见的比如数组array,链表linked list,栈stack,队列queues,树trees,图graphs,还有哈希表hash tables
二、 算法
算法(algorithm) 是在一定时间内解决一个问题的一系列的一步又一步清楚且准确的指令,而计算机算法是通过将这些指令翻译成计算机可以执行的计算程序来实现的。
为什么学习算法:通过学习一系列不同的算法,当下次遇到问题的时候,可以更好地解决问题。
算法评估(solution evaluation techniques):通过算法本身的特点而不是计算机本身的特点去评估一个算法的好坏,快慢等。
python 类的定义:
python是一种面向对象的编程语言。面向对象的编程语言最厉害的地方之一在于它允许问题的解决者新建类(classes)。
比如新建一个Fraction类:
class Fraction:
#the methods go here
def __init__(self,top,bottom):
self.num = top
self.den = bottom
参考资料:Data Structures and Algorithm Using Python