自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IT晓可程序员之路

独特思考、不设限的工程师

  • 博客(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

原创 常见算法时间复杂度比较

Python常见算法时间复杂度比较

2017-05-29 16:34:11 2164

原创 Python归并排序算法

归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。

2017-05-29 16:31:12 1135 1

转载 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

原创 时间复杂度与大O记法的理解

算法,时间复杂度

2017-05-24 17:00:08 5079

原创 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同步与Lock接口

同步好处:解决了线程安全问题。 弊端:相对降低性能,因为判断锁需要消耗资源,产生了死锁。

2017-05-23 13:45:48 441

原创 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面向对象之三多态

多态定义函数本身就具备多态性,某一种事物有不同的具体的体现。体现:父类引用或者接口的引用指向了自己的子类对象。 /

2017-05-23 13:12:23 176

原创 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

转载 转载--HTTP协议的详细理解

http协议的详细理解

2017-05-12 09:59:27 887

原创 Python中协程的理解

Num01–>协程的定义 协程,又称微线程,纤程。英文名Coroutine。 首先我们得知道协程是啥?协程其实可以认为是比线程更小的执行单元。 为啥说他是一个执行单元,因为他自带CPU上下文。这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。Num02–>协程和线程的差异 那么这个过程看起来和线程差不多。其实

2017-05-11 18:08:26 6919

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除