1.算法引入:

#!/usr/bin/env python
#! _*_ coding:UTF-8 _*_

from Queue import Queue
import time

que = Queue()

time_begin = time.time()
# 如果a+b+c=1000, 且a^2+b^2=c^2,a,b,c为自然数,求出a,b,c所有的组合
# 使用枚举法计算结果
for a in range(1001):
    for b in range(1001):
        for c in range(1001):
            if a + b + c == 1000 and a**2 + b**2 == c**2:
                que.put({'a':a, 'b':b, 'c':c})
time_end = time.time()

print "运行的时间为 %d, 求解的结果如下:" % (time_end-time_begin)
for item in range(que.qsize()):
    print que.get(

结果:

/Users/liudaoqiang/PycharmProjects/numpy/venv/bin/python /Users/liudaoqiang/Project/python_project/bat_day1/abc.py
运行的时间为 121, 求解的结果如下:
{'a': 0, 'c': 500, 'b': 500}
{'a': 200, 'c': 425, 'b': 375}
{'a': 375, 'c': 425, 'b': 200}
{'a': 500, 'c': 500, 'b': 0}

Process finished with exit code 0

注意:

(1)数据结构与算法是程序开发人员的基本功,需要平时不断的积累,是内功

(2)算法是计算机处理信息的本质,计算机程序的本质是一个算法告诉计算机执行步骤来执行一个指定的任务

算法的5个特性:

(1)输入:具有0个或多个输入

(2)输出:至少有1个或多个输出

(3)有穷性:在既定的时间范围之内执行完毕

(4)确定性:每个步骤没有二义性

(5)可行性:每步都在有限的次数完成

python数据结构算法学习自修第一天【数据结构与算法引入】的更多相关文章

  1. Python 基础语法学习(第一讲)---类的使用

    [写在前面]:其实自学python有一段时间了,但是一直没想起来要写博客来记录自己的学习,今天才感觉要写点什么让自己学的更扎实一点,所以从今天开始更新python自学系列,希望看见文章的大佬们可以指点 ...

  2. python数据结构与算法学习自修第二天【时间复杂度与大O表示法】

    #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ from Queue import Queue import time que = Queue() time ...

  3. python常用算法学习(4)——数据结构

    数据结构简介 1,数据结构 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成.简单来说,数据结构就是设计数据以何种方式组织并存贮在计算机中.比如:列表,集合与字 ...

  4. 莫烦scikit-learn学习自修第一天【scikit-learn安装】

    1. 机器学习的分类 (1)有监督学习(包括分类和回归) (2)无监督学习(包括聚类) (3)强化学习 2. 安装 (1)安装python (2)安装numpy >=1.6.1 (3)安装sci ...

  5. 图像识别opencv学习自修第一天【opencv的安装】

    1. 安装步骤 (1)安装python (2)安装xcode (3)使用macports现成包安装opencv (4)安装scipy 2. 安装实战 (1)已经安装好了python,并安装好了virt ...

  6. 莫烦theano学习自修第一天【常量和矩阵的运算】

    1. 代码实现如下: #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ # 导入numpy模块,因为numpy是常用的计算模块 import numpy as ...

  7. django学习自修第一天【简介】

    1. MVC框架 MVC框架的核心思想是解耦,降低各功能之间的耦合性,方便重构代码 (1)低耦合,高内聚 (2)高可扩展性 (3)向后兼容 2. MVT框架 V(视图):核心处理,接受请求,调用模型获 ...

  8. 莫烦keras学习自修第一天【keras的安装】

    1. 安装步骤 (1)确保已经安装了python2或者python3 (2)安装numpy,python2使用pip2 install numpy, python3则使用pip3 install nu ...

  9. PHP算法学习(2) 轮训加权算法

    2019年1月8日16:10:51 svn地址:svn://gitee.com/zxadmin/live_z    代码在code里面 <?php /* * 加权轮训算法 * * * $arr ...

随机推荐

  1. P1451 求细胞数量(广搜)

    题意:就是0把是所有细胞圈起来了.而被圈起来的是所有数字全部为一个细胞问有多少个这样的细胞.(mmp,我读半天题) 思路:广搜索.就是,0的话就不放入了,不为0的话,就进入队列,然后,再看它的4个方向 ...

  2. VM虚拟机ubantu自适应屏幕大小

    1.菜单栏安装VMware-Tool sudo ./wmware-install.pl 2.sudo apt-get install open-vm-tools装完这两个就可以,有些人只安装了第一个, ...

  3. Troubleshooting ORA-12547 TNS: Lost Contact (Doc ID 555565.1)

    Troubleshooting ORA-12547 TNS: Lost Contact (Doc ID 555565.1) This error can occur in following scen ...

  4. Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) "

    安装了mysql, 使用命令mysql -u root -p 弹出Can 't connect to local MySQL server through socket '/tmp/mysql.soc ...

  5. Java内存模型与线程安全

    原文链接:blog.edreamoon.com Java内存模型 计算机cpu的运算能力强大,但是数据的存储相对于cpu运算能力需要消耗大量时间,为了充分利用运算能力引入了缓存,但是也为计算机系统带来 ...

  6. JVM内存管理的一些思考

    目录 一. 内存是怎么分配的 二. 方法区 三. java对象的生命周期 四. Class对象是在方法区还是堆中 五.java对象的大小 六. 类加载的初始化阶段 七.Class.forName和Cl ...

  7. echarts 实时获取数据

    html: <div id="realTimeInvoke" class="chart" style="height: 400px;" ...

  8. Python 学习 第十二篇:pandas

    pandas是基于NumPy构建的模块,含有使数据分析更快更简单的操作工具和数据结构,最常用的数据结构是:序列Series和数据框DataFrame,Series类似于numpy中的一维数组,类似于关 ...

  9. disruptor 高性能之道

    disruptor是一个高性能的线程间异步通信的框架,即在同一个JVM进程中的多线程间消息传递.应用disruptor知名项目有如下的一些:Storm, Camel, Log4j2,还有目前的美团点评 ...

  10. .netcore 堆栈调用方法小记

    背景 上午临近午饭时,公司同事反馈验证码被攻击灌水.我们匆忙查询验证码明细,对已频繁出现的IP插入黑名单,但IP仍然隔断时间频繁变动,不得已之下只能先封禁对应公司id的验证码发送功能.年初时候,专门对 ...