- 博客(16)
- 资源 (15)
- 收藏
- 关注
原创 【内部排序】八:归并排序(Merge Sort)详解与代码
归并排序是多次将两个或两个以上的有序表合并成一个新的有序表。最简单的归并是直接将两个有序的子表合并成一个有序的表。 2-路归并排序在内部排序中,通常采用的是2-路归并排序。即:将含有n个元素的序列看成是n个有序的子序列,每个子序列的长度为1,而后两两合并,得到n/2个长度为2或1的有序子序列,再进行两两合并。。。直到最后由两个有序的子序列合并成为一个长度为n的有序序列。2-路归并的核心操
2015-04-23 11:04:11 4119 5
原创 【数据结构树表的查找】二叉排序树详解和代码(生成、插入、查找、最大值、最小值、删除、中序遍历、销毁)
二叉排序树(简称BST)又称二叉查找(搜索)树,其定义为:二叉排序树或者是空树,或者是满足如下性质的二叉树: (1)若它的左子树非空,则左子树上所有记录的值均小于根记录的值; (2)若它的右子树非空,则右子树上所有记录的值均大于根记录的值; (3)左、右子树本身又各是一棵二叉排序树。注意:二叉排序树中没有相同关键字的节点。对二叉排序树进行中序遍
2015-04-27 20:16:34 6933 2
原创 【数据结构线性表查找】——顺序查找和折半查找详解和代码
前言查找的定义是:给定一个值k,在含有n个记录的表中找出关键字等于k的记录。若找到,则查找成功,返回该记录的信息或该记录在表中的位置;否则查找失败,返回相关的指示信息。采用哪一种查找方法,需要考虑两点 (1)使用哪种数据结构来表示“表”; (2)是对无序集合查找还是对有序集合查找。线性表三种在线性表上进行查找的方法: (1)顺序查找
2015-04-23 20:08:55 14595
原创 【内部排序】七:堆排序(Heap Sort)详解与代码(超详细注释版)
堆排序是选择排序的一种,每一趟从待排序的记录中选出关键字最小的记录,顺序放在有序的子表中,直到全部记录排序完毕。关于堆排序的讲解,兰亭风雨在http://blog.csdn.net/ns_code/article/details/20227303里讲解的非常好,推荐大家看看。我这里做个总结:二叉堆: 二叉堆其实是一棵有着特殊性质的完全二叉树,父节点的值总是大于等于(或小于等于)其左
2015-04-22 22:03:04 3203 2
原创 android NDK整合opencv开发——流程总结(window环境)
使用opencv有两种方式:一种是使用opencv的java版本的API,但是这种方式不是通过本地调用实现的,全部都是java代码。一种是使用opencv的c++版本的API,将本地c++代码编译成.so链接库,然后在安卓开发中进行调用,本地cpp代码使用NDK进行编译。这里总结下面这种编译本地c++代码的实例流程:1、新建android项目,项目名称命名为NDKdemo。2、
2015-04-21 18:42:21 2588
原创 android NDK开发整合opencv开发——环境搭建(window环境)
很多实验室或者公司以前大部分的工作都是利用c/c++进行开发的,如果把这些代码使用java重写是不现实的,所以需要利用NDK调用公司已经存在的大量的c/c++代码。目前OPENCV已经提供了Android 版本的API,如果你的工程完全是新的, 没有任何需要使用以前c/c++代码,那么还是建议你直接使用opencv Android版本的java API,使用NDK的效率并不一定会提高。本文
2015-04-21 16:22:07 1000
原创 【内部排序】六:直接选择排序(Straight Selection Sort)详解与代码
选择排序的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子表的最后,直到全部记录排序完毕。 两种选择排序方法: (1)直接选择排序 (2)堆排序每一趟总是从无序区选出全局最小(最大)的关键字,所以适用于从大量元素中选择最小或最大的一部分元素。一、基本思想第i趟排序开始时,当前有序区和无序区分别为R[0..i-1]和R
2015-04-21 11:28:52 1509
原创 【内部排序】五:快速排序(Quick Sort)详解与代码
接着上一篇,这篇详解快速排序。快速排序是由冒泡排序改进而得的,采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。一、基本思想:在待排序的n个记录中任取一个记录(通常取第一个记录)
2015-04-20 22:51:20 2483
原创 【内部排序】四:冒泡排序(Bubble Sorting)详解与代码
交换排序的基本思想:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。两种交换排序: (1)冒泡排序 (2)快速排序一、冒泡排序的基本思想:通过无序区中相邻记录关键字间的比较和位置的交换,使关键字最小的记录如气泡一般逐渐往上“漂浮”直至“水面”。整个算法是从最下面的记录开始,对每两个相邻的关键字进行比较,
2015-04-20 21:10:29 2176
原创 【内部排序】三:希尔排序(Shell Sort)的多种实现(不断优化+源码)
当我们看代码时,一时不能理解的话。画下草图,用实例来分析下,自己举个例子,跟着代码的执行流程一步步走,回过头来再看就明白了。希尔排序也是一种插入排序方法,实际上是一种分组插入方法。一、基本思想:先取定一个小于n的整数d1作为第一个增量,把表的全部记录分成d1个组,所有距离为d1的倍数的记录放在同一个组中,在各组内进行直接插入排序; 然后取第二个增量d
2015-04-20 18:09:32 2191
原创 【内部排序】二:折半插入排序(binary insertion sorting)实现(源码)
上一篇文章中直接插入排序算法简单,且容易实现,当待排序的长度n很小时,是一种很好的排序方法,尤其当原始序列接近有序时,效率更好。如果待排序的长度n很大,则不适宜采用直接排序。这时我们可以考虑对其做些改进,我们可以从减少比较和移动的次数入手,因此可以采用折半插入排序,其思想类似于折半查找。由于排序算法过程中,就是不断的依次将元素插入前面已排好序的序列中。由于前半部分为已排好序的数列,这样我们不用按顺
2015-04-16 11:57:53 1557
原创 【内部排序】一:直接插入排序(Straight Insertion Sorting)的多种实现(不断优化+源码)
插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。直接插入排序的基本实现思想直接插入排序(Straight Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过
2015-04-15 15:38:42 1737 1
原创 数据存储之SQLite 数据库存储——第一行代码Android学习笔记
SQLite 是一款轻量级的关系型数据库, 它的运算速度非常快,占用资源很少。存储大量复杂的关系型数据的时候使用。一、创建数据库SQLiteOpenHelper帮助类, 借助这个类就可以非常简单地对数据库进行创建和升级。SQLiteOpenHelper 中有两个抽象方法,分别是onCreate()和onUpgrade(),我们必须在自己的帮助类里面重写这两个方法,然后分
2015-04-09 21:58:54 1362
原创 数据存储之SharedPreferences存储——第一行代码Android学习笔记
SharedPreferences是使用键值对的方式来存储数据的。SharedPreferences文件都是存放在/data/data/name>/shared_prefs/目录下的。一、将数据存储到 SharedPreferences 中Android中主要提供了三种方法用于得到SharedPreferences 对象:1. Context类中的
2015-04-09 21:25:55 1009
原创 数据存储之文件存储——第一行代码Android学习笔记
一、 Android数据存储Android 系统中主要提供了三种方式用于简单地实现数据持久化功能,即文件存储、 SharedPreference 存储以及数据库存储。当然,除了这三种方式之外,你还可以将数据保存在手机的 SD 卡中。二、 文件存储文件存储不对存储的内容进行任何的格式化处理, 所有数据都是原封不动地保存到文件当中的, 因而它比较适合用于存储一些简单的文本数据或二进
2015-04-09 19:54:20 1404
原创 广播机制(Broadcast Receiver)——第一行代码阅读笔记
广播的类型标准广播 Normal broadcasts,一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言。 无法被截断的。 有序广播 Ordered broadcasts,一种同步执行的广播, 在广播发出之后, 同一时刻只会有一个广播接收器能够收到这条广播消息,当这个广播接收器中的逻辑执行完毕后, 广播才会继续传递
2015-04-07 21:36:36 1400
RDMA原理.pptx
2016-08-29
SelectFromGallery
2015-07-13
3SAT问题测试用例
2015-06-11
直接插入排序的四种实现代码(不断优化)
2015-04-15
首届CCF软件能力认证试题题目2答案
2014-12-07
模拟退火算法解决0-1背包问题的实现
2014-06-13
MFC:简单计算器的开发
2014-03-26
灰度图像转伪彩色图像(求差异图)
2014-03-20
高级算法课程:模拟退火算法SA()的实现代码C++
2014-03-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人