loannes's blog

首页

关于

归档

loading..
MySQL正则表达式

【MySQL必知必会】正则表达式

正则表达式介绍 正则表达式可用于查找文件,可以在文本块中找到重复的单词。解析URL,处理复杂文本等。 正则表达式与MySQL的关系 通过正则对文本串进行比较来替换LIKE。 见下面例子 基本字符匹配 从first_name这个列中找出所有包含’oo’的行 SELECT first_name FROM employees WHERE first_name REGEXP 'oo'; 该代码等同于 SELECT first_name FROM employees WHERE first_name LIKE '%oo%'; 目前看下来正则在字符长度比较短的情况下,执行效率比通配符来得低。 看下面的例子: 在salaries表中,查找salary列里匹配.0000。这个.表示匹配任意一个字符,这个是通配符%..

更多
loading..
MySQL

【MySQL必知必会】使用数据处理函数

函数 函数提供了对数据转换和处理的功能 上篇文章中的RTrim() 以及处理时间的TIMESTAMPDIFF()都是函数。 因为函数是当前数据库使用的引擎特有,所以如果遇到移植到其他数据库就可能会出现不支持这些函数的情况。 PS:在开发中要注意这种情况,避免在移植后出现不必要的麻烦。如果必须使用函数,写好相关注释 使用函数 大多数SQL支持以下几种类型的函数: 用于处理文本串(如删除,填充,转换大小写) 对数值进行算数操作(如返回绝对值,进行代数运算) 用于处理日期 返回DMBS使用的特殊信息(如用户登录信息,版本细节) 文本处理函数 上篇了解了RTrim是去除右边空格,LTrim是去除左边空格 接下来学习个新函数-Upper(),将文本转换成大写 mysql> SELECT first_nam..

更多
loading..
hashmap

算法图解笔记(四)---哈希表

哈希表 哈希表又称为散列表,是一种key-value表结构。由哈希函数和数组组成,它的原理是通过哈希函数将传入的key值计算出索引,最后从数组中通过索引快速获取数据。 哈希表结构图 一般情况下它的时间复杂度为O(1),相比较于有序列表,它的时间复杂度为O(logn)。 哈希表与列表最大的区别在于哈希表需要通过哈希函数中的算法来将key值换算成列表的索引,并且同一个key只能指向与同一个索引,也就是说一旦某个key换算成了一个索引后任何其他key都无法换算成该索引。如果出现重复的索引就称之为哈希碰撞。 在常用的语言中,哈希表通常以字典(dict)的形式表现。 哈希函数 构造哈希函数有多种方式,比如直接寻址法、数字分析法、平方取中法、折叠法、随机数法、除留余数法。 由于哈希函数有可能会出现不同的输入值会输..

更多
loading..
排序

算法图解笔记(三)\-\--快速排序

=============================== 算法的核心思想-----分而治之(D&C) D&C的理解过程: 找出基线条件,这种条件必须尽可能简单。 不断将问题分解,直到符合基线条件。 通过下面这道题来加深对D&C的理解: 将这块长为1680m,宽640m的地均匀的分成方块,且分出的方块尽可能的大。 按照D&C的解题步骤: 基线条件: 如果长是宽的整数倍,那么就可以正好将他们分割成等分的正方形。然后通过从大到小的顺序进行筛选优先找到的肯定是最大的正方形。 按照题目中的理解就是:只需找出1680余64之间的最大公约数即可。 递归条件: 通过欧几里得算法可以得知:‘适用于这小块地的最大方块同样也适用于整块地的最大方块’。这句话正好符合了分而治之的核..

更多
loading..
递归

算法图解笔记(二) \-\-- 递归

============================= 栈 每当调用函数时,计算机会将函数调用设计的所有变量存贮到内存中。 在函数内调用函数时,内部的函数在调用完成后会返回到上一次函数并且会被踢出栈堆。未完成的函数不会被踢出栈堆。 创建递归函数时刻要记得基线条件和递归条件 一段关于栈的代码解读 def fact(x): if x==1: return 1 else: return x*fact(x-1) 代码解读:(以x=3为例) 当x=3,程序进入了else条件并且执行递归,随后创建了x=2的内存块被将其放入栈堆中。 执行x=2的函数,因为此时x不等于1所以还是进入了else条件执行递归,随后创建了x=1的内存块并将其放入栈堆中。 此时x=1则进入第一个条件返回1,该轮函数..

更多
数据结构

大话数据结构第二章 算法

======================= 什么是算法 算法表示决绝特定问题的求解步骤,由一个或多个操作组成。 算法的特性 输入输出、有穷性、确定性、可行性。 输入输出: 不一定有输入但必须有输出 有穷性 造成死循环的代码不是算法 确定性 算法的每一个步骤都有确定的含义,无需存在多余的步骤。 可行性 算法的每一步都必须在计算机上运行 算法的时间复杂度 公式: ±----------------------------------±----------------------------------+ | 1 | T(n) = O(f(n)) | ±----------------------------..

更多
loading..
排序

算法图解笔记(一) \-\-- 选择排序、二分查找

========================================= 二分查找 是一个在有序元素列表中的查找的算法 原理:如这个列表长度是10000,通过算法排除不满足条件的另一半来查找。 比如从100个数字中找到某个数字的索引,可以先找到50进行比较来缩小范围。如果大于50就再拿75做比较,以此类推,直到找到该数字。 这样的二分算法能从原先的暴力查找(最坏情况下)100次减少到7次。 记做公式: $$log_2 n$$ 算法运行时间 运行时间的增速:随着数据量的增加,运行时间会出现递增的情况。优秀的算法增速越少,比如二分查找和简单查找在10亿个算法的情况下,简单查找需要11天才能查找玩,而二分查找只需要32毫秒。 算法的速度指的的操作数的增速。也就是时间复杂度 数组 缺点:添加新元素如果遇..

更多
数据结构

大话数据结构第一章 数据结构

=========================== 所有能够被计算机程序处理和可以输入到计算机中的都可以作为数据。不单单只有数值、数值类型,MP3,图片等都是数据。 数据元素与数据项的区别 数据元素是由数据项组成的单位,如某公司中的一名程序员就是数据元素。 而数据项则是由数据元素拆分而成的最小单位,这名程序员的姓名,年龄就是数据项了。 数据对象(简称为数据) 数据对象就是性质相同的数据元素的集合。某个数据元素是程序员A,程序员A、程序员B、程序员C统称为程序员,这个程序员就是数据对象。 数据结构 是相互之间存在一种或多种特定关系的数据元素的集合。 比方说:N名iOS程序员 + N名Android程序员 + N名后端程序员可以组成移动开发小组。 N名Unity程序员 + N名后端开发可以组成游戏开发小组。..

更多
1121314151619