- 博客(48)
- 资源 (1)
- 收藏
- 关注
原创 二叉树深度优先和广度优先遍历
树的遍历是树的一种重要的运算。所谓遍历是指对树中所有结点的信息的访问,即依次对树中每个结点访问一次且仅访问一次,我们把这种对所有节点的访问称为遍历(traversal)。那么树的两种重要的遍历模式是深度优先遍历和广度优先遍历,深度优先一般用递归,广度优先一般用队列。一般情况下能用递归实现的算法大部分也能用堆栈来实现。
2017-05-29 17:28:39 901
原创 浅谈二叉树
二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)
2017-05-29 17:15:31 521
原创 树与树算法
树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。
2017-05-29 17:03:04 471
原创 Python二分查找算法
二分查找又称折半查找, 优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
2017-05-29 16:42:22 9999
转载 Android中ConstraintLayout布局
说明这次 IO 给开发者带来了很多惊喜, ConstraintLayout 是其中较为实用的之一. Google 第一时间发布了官方的代码实验室指导教程, 从样例项目和实验操作出发一步步理解 ConstraintLayout. 这里是我的翻译.同步于我的博客: http://quanqi.org/2016/05/20/code-labs-constraint-layout/ (简书的图片都换行了
2017-05-28 11:55:15 1704
原创 Python快速排序算法
Num01–>定义 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
2017-05-27 17:50:52 2692
原创 Python希尔排序算法
Num01–>定义 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。
2017-05-27 17:37:48 4934 1
原创 Python插入排序算法
Num01–>定义 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
2017-05-27 17:26:58 5892 4
原创 Python选择排序算法
Num01–>选择排序定义 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
2017-05-27 17:18:53 6728
原创 Python冒泡排序算法
Num01–>冒泡排序定义 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
2017-05-27 16:59:56 25917 7
原创 数据结构之栈和队列
Num01–>栈的定义 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。
2017-05-27 15:03:49 312
原创 数据结构之链表
链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。
2017-05-25 15:17:53 316
原创 数据结构之顺序表
Num01–>线性表定义及顺序表和链表 在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化(可以增加或删除元素)。
2017-05-25 14:33:17 1564
原创 Java中反射技术总结
反射技术定义:其实就是动态加载一个指定的类,并获取该类中的所有的内容。而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员。简单说:反射技术可以对一个类进行解剖。反射的好处:大大的增强了程序的扩展性。
2017-05-23 14:47:48 1037
原创 Java中IO流知识总结
流:可以理解数据的流动,就是一个数据流。IO流最终要以对象来体现,对象都存在IO包中。 流也进行分类: 1:输入流(读)和输出流(写)。 2:因为处理的数据不同,分为字节流和字符流。 字节流:处理字节数据的流对象。设备上的数据无论是图片或者dvd,文字,它们都以二进制存储的。二进制的最终都是以一个8位为数据单元进行体现,所以计算机中的最小数据单元就是字节。意味着,字节流可以处理设备上的所有数据
2017-05-23 14:37:51 1008
原创 Java中集合总结
集合框架:用于存储数据的容器。特点:1:对象封装数据,对象多了也需要存储。集合用于存储对象。 2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合。因为集合是可变长度的。
2017-05-23 14:18:11 684
原创 Java中StringBuffer与StringBuilder的区别
StringBuffer字符串缓冲区构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
2017-05-23 14:04:03 412
原创 Java多线程知识总结
多线程基本概念进程:正在进行中的程序。其实进程就是一个应用程序运行时的内存分配空间。 线程:其实就是进程中一个程序执行控制单元,一条执行路径
2017-05-23 13:33:46 254
原创 Java内部类与匿名内部类的区别
内部类:内部类基本概念如果A类需要直接访问B类中的成员,而B类又需要建立A类的对象。这时,为了方便设计和访问,直接将A类定义在B类中。
2017-05-23 13:25:28 2898 1
原创 Java接口总结
接口定义1:是用关键字interface定义的。2:接口中包含的成员,最常见的有全局常量、抽象方法。 注意:接口中的成员都有固定的修饰符。
2017-05-23 13:17:33 430
原创 Java面向对象之二继承
继承的好处:1:提高了代码的复用性。 2:让类与类之间产生了关系,提供了另一个特征多态的前提。父类的由来:其实是由多个类不断向上抽取共性内容而来的。
2017-05-23 13:04:12 208
原创 Java中面向对象特征之一封装
封装定义:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。好处:将变化隔离;便于使用;提高重用性;安全性。封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。this:代表对象。就是所在函数所属对象的引用。
2017-05-23 11:44:18 282
原创 Java面向对象概述
面向对象特点1:将复杂的事情简单化。 2:面向对象将以前的过程中的执行者,变成了指挥者。 3:面向对象这种思想是符合现在人们思考习惯的一种思想。过程和对象在我们的程序中是如何体现的呢? 过程其实就是函数;对象是将函数等一些内容进行了封装。匿名对象使用场景:1:当对方法只进行一次调用的时候,可以使用匿名对象。 2:当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。在类中定义其实都
2017-05-23 11:32:16 187
原创 Java基础知识总结
Num01–>java概述:1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java;Java的三种技术架构:JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;JAVASE:Java Platfo
2017-05-23 11:03:06 257
原创 Redis数据库总结
Num01–>Redis定义1、Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持2、Redis是一个开源(BSD许可)的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件3、redis是一个高性能的key-value存储系统。和Memc
2017-05-23 10:08:19 465
原创 MySql高级知识的一些总结
Num01–>mysql账户管理Test01–>定义在生产环境下操作数据库时,绝对不可以使用root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的crudMySQL账户体系:根据账户所具有的权限的不同,MySQL的账户可以分为以下几种1、服务实例级账号:启动了一个mysqld,即为一个数据库实例;如果某用户如root,拥有服务实例级分配的权限,那么该
2017-05-23 09:52:10 3765
原创 MySql的查询总结
Num01–>mysql基本查询1、查询所有字段------select * from 表名;例:select * from students;2、查询指定字段
2017-05-22 20:50:55 519 1
原创 MongoDB数据库总结
Num01–>MongoDB简介 1、MongoDB 是一个基于分布式文件存储的NoSQL数据库 2、由C++语言编写,运行稳定,性能高 3、旨在为WEB应用提供可扩展的高性能数据存储解决方案
2017-05-22 13:53:08 566
原创 SQL与NOSQL的区别
Num01–>定义: SQL是:关系型数据库,以Oracle、MySql为代表的数据库 NOSQL就是Not Only SQL,是:非关系型数据库,以MongoDB、Redis为代表的数据库。 Num02–>关系型数据库Test01–>关系型数据库遵循ACID规则1、A (Atomicity) 原子性原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件
2017-05-20 16:47:00 961
转载 python 虚拟开发环境搭建
作为主流开发语言, 用python 开发的程序越来越多。 方便的是大多linux系统里面都默认集成了python, 开发可以随时随地开始。 但有时候这也成为了一个短板, 比如说有时候我们需要开发和调试一些需要安装在默认python路径里的程序, 反复地修改和安装会使系统目录越来越乱,这对于一些有洁癖的程序员来说是不可接受的。 还有时候我们需要在不同的python版本上开发, 而系统一般只会自带一到两
2017-05-16 13:36:36 302
原创 MySql的一些内置函数
Num01–>字符串函数1,查看字符的ascii码值ascii(str),str是空串时返回0select ascii('a');2,查看ascii码值对应的字符char(数字)select char(97);3,拼接字符串concat(str1,str2...)select concat(12,34,'ab');4,包含字符个数length(str)select length('abc')
2017-05-13 20:16:19 422
原创 MySql的基本操作
Num01–>MySql的安装Test01–>安装服务器端命令,ubuntu中默认已安装 sudo apt-get install mysql-serverTest02–>启动服务 sudo service mysql startTest03–>查看进程中是否存在mysql服务 ps ajx|grep mysqlTest04–>停止服务 sudo service mysql
2017-05-13 20:02:44 274
原创 Python中WSGI接口的理解
Num01–>浏览器动态请求页面流程图 以上图片就是整个浏览器动态请求服务器的全过程。Num02–>什么是WSGI? WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。 WSGI
2017-05-12 12:06:57 1075
原创 Python中协程的理解
Num01–>协程的定义 协程,又称微线程,纤程。英文名Coroutine。 首先我们得知道协程是啥?协程其实可以认为是比线程更小的执行单元。 为啥说他是一个执行单元,因为他自带CPU上下文。这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。Num02–>协程和线程的差异 那么这个过程看起来和线程差不多。其实
2017-05-11 18:08:26 6919
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人