算法基础简介

基本概念

一、数据结构

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值