数据结构和算法
文章平均质量分 85
XuLujuncsdn
想要的,自己给自己。
展开
-
八大排序(二)
1.排序的基本概念:排序是各门语言中的核心,也是计算机数据处理中的核心运算,是我们学过的“数据结构与算法”课程的重点。排序算法能够体现算法设计和算法分析的精神。有效的排序算法在一些算法(例如搜索算法与合并算法)中是重要的,如此这些算法才能得到正确解答。 这篇博文主要包含了8大内部排序的算法复杂度,稳定性以及描述算法和可视化过程,花时间总结了很久,但是肯定仍有不足,希望各位大神能指点迷津。转载 2017-08-07 20:21:58 · 566 阅读 · 0 评论 -
SQLITE3 使用总结(六)
(3)用户自定义函数可以使用以下的方法来创建用户自定义的SQL函数:?123456789101112131415161718192021222324252627typedef struct sqlite3_value sqlite3_val转载 2017-04-24 10:34:52 · 1947 阅读 · 0 评论 -
SQLITE3 使用总结(七)
五、给数据库加密前面所说的内容网上已经有很多资料,虽然比较零散,但是花点时间也还是可以找到的。现在要说的这个——数据库加密,资料就很难找。也可能是我操作水平不够,找不到对应资料。但不管这样,我还是通过网上能找到的很有限的资料,探索出了给sqlite数据库加密的完整步骤。这里要提一下,虽然 sqlite 很好用,速度快、体积小巧。但是它保存的文件却是明文的。若不信可以用 NotePad 打开转载 2017-04-25 09:26:33 · 465 阅读 · 0 评论 -
SQLITE3 使用总结(四)
2)读出二进制下面说读二进制的步骤。跟前面一样,先声明 sqlite3_stmt * 类型变量:?1sqlite3_stmt * stat;然后,把一个 sql 语句解析到 stat 结构里去:?1sqlite3_prepare( db, “select转载 2017-04-22 08:13:18 · 1194 阅读 · 0 评论 -
SQLITE3 使用总结(八)
2自己实现加解密接口函数如果真要我从一份 www.sqlite.org 网上down下来的 sqlite3.c 文件,直接摸索出这些接口的实现,我认为我还没有这个能力。好在网上还有一些代码已经实现了这个功能。通过参照他们的代码以及不断编译中vc给出的错误提示,最终我把整个接口整理出来。实现这些预留接口不是那么容易,要重头说一次怎么回事很困难。我把代码都写好了,直接把他们按我下面的说转载 2017-04-26 11:55:58 · 569 阅读 · 0 评论 -
SQLITE3 使用总结(五)
(2)执行 SQL 语句typedef int (*sqlite_callback)(void*,int,char**, char**);int sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void*, char**);sqlite3_exec 函数依然像它在SQLite2中一样承担着很多的工作. 该函数的第二个参数转载 2017-04-24 10:34:02 · 892 阅读 · 0 评论 -
SQLITE3 使用总结(九)
在这一行后面,接上本文最下面的代码段。这些代码很长,我不再解释,直接接上去就得了。唯一要提的是 DeriveKey 函数。这个函数是对密钥的扩展。比如,你要求密钥是128位,即是16字节,但是如果用户只输入 1个字节呢?2个字节呢?或输入50个字节呢?你得对密钥进行扩展,使之符合16字节的要求。DeriveKey 函数就是做这个扩展的。有人把接收到的密钥求md5,这也是一个办法,因为m转载 2017-04-27 10:14:11 · 2032 阅读 · 0 评论 -
SQLITE3 使用总结(十)
五、性能优化很多人直接就使用了,并未注意到SQLite也有配置参数,可以对性能进行调整。有时候,产生的结果会有很大影响。主要通过pragma指令来实现。比如: 空间释放、磁盘同步、Cache大小等。不要打开。前文提高了,Vacuum的效率非常低!1 auto_vacuumPRAGMA auto_vacuum; PRAGMA auto_vacuum = 0 | 1;查转载 2017-04-28 12:11:25 · 632 阅读 · 0 评论 -
SQLITE3使用总结(二)
下面开始介绍数据库基本操作。1 基本流程(1)关键数据结构sqlite 里最常用到的是 sqlite3 * 类型。从数据库打开开始,sqlite就要为这个类型准备好内存,直到数据库关闭,整个过程都需要用到这个类型。当数据库打开时开始,这个类型的变量就代表了你要操作的数据库。下面再详细介绍。(2)打开数据库int sqlite3_open( 文件名, sqlite3 ** );用转载 2017-04-20 16:59:54 · 501 阅读 · 0 评论 -
数据结构八大排序
八大排序,三大查找是《数据结构》当中非常基础的知识点,在这里为了复习顺带总结了一下常见的八种排序算法。常见的八大排序算法,他们之间关系如下:排序算法.png他们的性能比较:性能比较.png下面,利用Python分别将他们进行实现。直接插入排序算法思想:直接插入排序.gif转载 2017-07-23 17:29:43 · 484 阅读 · 0 评论 -
SQLITE3 使用总结(三)
(3)不使用回调查询数据库上面介绍的 sqlite3_exec 是使用回调来执行 select 操作。还有一个方法可以直接查询而不需要回调。但是,我个人感觉还是回调好,因为代码可以更加整齐,只不过用回调很麻烦,你得声明一个函数,如果这个函数是类成员函数,你还不得不把它声明成 static 的(要问为什么?这又是C++基础了。C++成员函数实际上隐藏了一个参数:this,C++调用类的成员函数的转载 2017-04-21 10:10:11 · 1606 阅读 · 0 评论