liangtong


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 搜索

计数排序

发表于 2017-05-18 | 分类于 Algorithm | 阅读次数:

​ 计数排序是一个非基于比较的整数排序算法,用空间换时间,优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围)。

基本思想及实现

基本思想: 假设输入的线性表L的长度为n,L=L1,L2,..,Ln;线性表的元素属于有限偏序集S,|S|=k且k=O(n),S={S1,S2,..Sk};则计数排序可以描述如下:

  • ① 扫描整个集合S,对每一个Si∈S,找到在线性表L中小于等于Si的元素的个数T(Si);
  • ② 扫描整个线性表L,对L中的每一个元素Li,将Li放在输出线性表的第T(Li)个位置上,并将T(Li)减1。
阅读全文 »

快速排序

发表于 2017-05-11 | 分类于 Algorithm | 阅读次数:

​ 快速排序是采用分治法(Divide and Conquer)的应用。和归并排序不同的是,她不需要额外的存储空间,时间复杂度: T(n) = Θ(nlgn),最坏情况下是:T(n) = Θ(n²)。

基本原理及实现

基本原理: 使用递归、分治的思想,每次调用排序方法,随机选取一个key值,结果保证:key值所在数组中的位置,且能保证key左侧位置的数据总小于key值;右侧位置数据总大于key值

  • ① 当数组为空时,数组不需要排序,算法结束。
  • ② 选取一个key值,可以是带排序数组中任意位置的元素,这里选第一个元素。
  • ③ 遍历数组(角标j),将所有比key值小的元素移动到数组前边(角标i)。遍历结束时,i即是中间位置。
  • ④ 将key值与角标i位置元素位置互换。
  • ⑤ 递归对i位置左侧、右侧数组进行快速排序。
阅读全文 »

FMDB

发表于 2017-04-27 | 分类于 Database | 阅读次数:

​ SQLite是一款轻型的数据库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它使用B+树存储表,整个SQLite数据库就是这些B+树组成的森林。。它的设计目标是嵌入式的,目前被广泛应用。 FMDB 是基于SQLite的实现 。

数据库(连接)

数据库在使用前均需要建立连接,FMDB提供了两种方式对应数据库文件’通常xx.db’路径建立连接。FMDatabase是一个单一的用来执行SQL语句的数据库连接,使用同步的方式进行,如果需要在多线程执行查询或者更新,则需要使用FMDatabaseQueue

阅读全文 »
1…789…20
liangtong

liangtong

Keep hungry keep foolish!

59 日志
7 分类
17 标签
GitHub E-Mail 微博 知乎
友情链接
  • lidm1989
© 2016 — 2018 liangtong
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4