摘要: 问题描述:输入是一个大小为n的整型数组,要求输出数组的任何连续子数组中的最大值。例如:输入的数组为array[10] = {31,-41,59,26,-53,58,97,-93,-23,84};输出最大连续子数组和为array[2...6]:187 算法1:对所有满足0<=i<=j<=n的(i,j) 阅读全文
posted @ 2019-09-25 19:56 Smah 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 第十六章:贪心算法--活动选择问题 前言:贪心算法也是用来解决最优化问题,将一个问题分成子问题,在现在子问题最优解的时,选择当前看起来是最优的解,期望通过所做的局部最优选择来产生一个全局最优解。书中先从活动选择问题来引入贪心算法,分别采用动态规划方法和贪心算法进行分析。本篇笔记给出活动选择问题的详细 阅读全文
posted @ 2019-09-25 19:55 Smah 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 第十五章:动态规划--装配线调度 前言:动态规划的概念 动态规划(dynamic programming)是通过组合子问题的解而解决整个问题的。分治算法是指将问题划分为一些独立的子问题,递归的求解各个问题,然后合并子问题的解而得到原问题的解。例如归并排序,快速排序都是采用分治算法思想。本书在第二章介 阅读全文
posted @ 2019-09-25 19:53 Smah 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 第十二章:二叉查找树 摘要: 本章介绍了二叉查找树的概念及操作。主要内容包括二叉查找树的性质,如何在二叉查找树中查找最大值、最小值和给定的值,如何找出某一个元素的前驱和后继,如何在二叉查找树中进行插入和删除操作。在二叉查找树上执行这些基本操作的时间与树的高度成正比,一棵随机构造的二叉查找树的期望高度 阅读全文
posted @ 2019-09-25 19:48 Smah 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 第十章:基本数据结构 摘要 本章介绍了几种基本的数据结构,包括栈、队列、链表以及有根树,讨论了使用指针的简单数据结构来表示动态集合。本章的内容对于学过数据结构的人来说,没有什么难处,简单的总结一下。 1、栈和队列 栈和队列都是动态集合,元素的出入是规定好的。栈规定元素是先进后出(FILO),队列规定 阅读全文
posted @ 2019-09-25 19:45 Smah 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 第七章:快速排序 本章介绍了快速排序及其算法分析,快速排序采用的是分治算法思想,对包含n个数的输入数组,最坏情况下运行时间为θ(n^2),但是平均性能相当好,期望的运行时间为θ(nlgn)。另外快速排序能够就地排序(我理解是不需要引入额外的辅助空间,每次划分能确定一个元素的具体位置),在虚拟环境中能 阅读全文
posted @ 2019-09-25 19:43 Smah 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 本章开始介绍了堆的基本概念,然后引入最大堆和最小堆的概念。全章采用最大堆来介绍堆的操作,两个重要的操作是调整最大堆和创建最大堆,接着着两个操作引进了堆排序,最后介绍了采用堆实现优先级队列。 1、堆 堆给人的感觉是一个二叉树,但是其本质是一种数组对象,因为对堆进行操作的时候将堆视为一颗完全二叉树,树种 阅读全文
posted @ 2019-09-25 19:40 Smah 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 第一章:算法在计算机中的作用 本章是本书的开篇,介绍了什么是算法,为什么要学习算法,算法在计算机中的地位及作用。 算法(algorithm)简单来说就是定义良好的计算机过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出。即算法就是一系列的计算步骤,用来将输入数据转换成输出数据。 书中有一句 阅读全文
posted @ 2019-09-25 19:27 Smah 阅读(530) 评论(0) 推荐(0) 编辑
摘要: #-*- coding: utf-8 -*- import curses from random import randrange, choice from collections import defaultdict #Defines valid inputs to not allow for input errors actions = ['Up', 'Left', 'Down'... 阅读全文
posted @ 2019-09-25 18:59 Smah 阅读(1606) 评论(0) 推荐(0) 编辑
摘要: Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可 一、创建元组 代码如下: tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3 阅读全文
posted @ 2019-09-25 18:02 Smah 阅读(138355) 评论(3) 推荐(11) 编辑
摘要: Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。 一、创建字典 字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下: dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} 阅读全文
posted @ 2019-09-25 17:58 Smah 阅读(1784) 评论(0) 推荐(0) 编辑
摘要: 参考文献来源于脚本之家 列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行 阅读全文
posted @ 2019-09-25 17:53 Smah 阅读(20422) 评论(0) 推荐(1) 编辑
摘要: 一、前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Python也是一样。很多时候我们会有这样的需求: 2.数据格式 如果要将一个系统内的数据通过网络传输给其它系统或客户端,我们通常都需要先把这些数据转化为字符串或字节串,而且需 阅读全文
posted @ 2019-09-25 17:50 Smah 阅读(863) 评论(0) 推荐(0) 编辑
摘要: 方法列表: 1.系统调用 2.虚拟文件系统 proc文件系统 sysfs文件系统 debugfs文件系统 3.ioctl接口 4.netlink调试方法: https://blog.csdn.net/gatieme/article/details/68948080 一:系统调用1.简介 优秀博客: 阅读全文
posted @ 2019-09-25 16:20 Smah 阅读(3605) 评论(0) 推荐(0) 编辑
摘要: 一、什么是Netlink通信机制 Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口。 Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目 阅读全文
posted @ 2019-09-25 16:16 Smah 阅读(2554) 评论(0) 推荐(0) 编辑
摘要: 本地打包,setup安装 一、distutils 使用:distutils 进行打包,步骤如下,以单一文件为例。 1、创建文件 在同一目录下。写一个foo.py文件: 写一个setup.py文件: 2、创建源码包 运行python setup.py sdist可以为模块创建一个源码包,在当前目录下, 阅读全文
posted @ 2019-09-25 11:32 Smah 阅读(7221) 评论(0) 推荐(0) 编辑