自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

牧之

但行好事,莫问前程。

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

CircleImageViewDemo_1

【Android开源项目分析】自定义圆形头像CircleImageView的使用和源码分析

2015-08-03

SelectFromGallery

在郭神的第一行代码中,第8章的从相册中选择图片这块,从相册选一张裁剪后显示到屏幕。但是运行后会发现从相册选了图片后,没有弹出裁剪的界面,直接返回。

2015-07-13

3SAT问题测试用例

可满足性问题: 1. m=3(变元的个数),n=5(子句的个数),l=3(子句的长度), 3-5-3.txt: 1 -2 3 0 1 -2 -3 0 1 2 -3 0 1 2 3 0 -1 2 3 0 其中文件表示如下合取范式: cnf=(p1并(P2的非)并p3)交(p1并(P2的非)并(p3的非))交(p1并P2并(p3的非))交(p1并P2并p3)交((p1的非)并P2并p3)

2015-06-11

直接插入排序的四种实现代码(不断优化)

直接插入排序的四种实现代码, 见博客 直接插入排序(Straight Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。

2015-04-15

首届CCF软件能力认证试题题目2答案

问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴 分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次 的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内 容。 当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层 窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次 顺序不变。如果你点击的位置不属于任何窗口,则系统会忽略你这次点击。 现在我们希望你写一个程序模拟点击窗口的过程。 输入格式 输入的第一行有两个正整数,即 N 和 M。( 1 ≤ N ≤ 10, 1 ≤ M ≤ 10) 接下来 N 行按照从最下层到最顶层的顺序给出 N 个窗口的位置。 每行包含四个非负整数 x 1 , y1 , x 2 , y 2,表示该窗口的一对顶点坐标分别为 ( x 1 , y1) 和 ( x 2 , y 2)。保证 x 1 < x 2, y1 < y 2。 接下来 M 行每行包含两个非负整数 x, y,表示一次鼠标点击的坐标。 题目中涉及到的所有点和矩形的顶点的 x, y 坐标分别不超过 2559 和 1439。 输出格式 输出包括 M 行,每一行表示一次鼠标点击的结果。如果该次鼠标点击 选择了一个窗口,则输出这个窗口的编号(窗口按照输入中的顺序从 1 编 号到 N);如果没有,则输出"IGNORED"(不含双引号)。

2014-12-07

2014首届CCF软件能力认证真题(重要,很好的准备资料)

2014首届CCF软件能力认证试题 不是模拟题,是真题。重要,很好的准备资料

2014-11-28

模拟退火算法解决0-1背包问题的实现

背包问题,是指从n件不同价值、不同重量物品中按一定的要求选取一部分物品,并使选中物品的价值之和为最大的问题。其形式化描述如下:给定一个物品集合s={1,2,…,n},物品i具有重量 和价值 。背包能承受的最大载重量不超过W。背包问题就是找到一个物品子集 ,使得

2014-06-13

VTK培训教程

VTK培训教程 很好的VTK入门学习资料

2014-04-12

powell算法实现图像配准(基于ITK和VS)

powell算法实现图像配准,需配置ITK环境

2014-04-12

MFC:简单计算器的开发

简单计算器的开发 (1)FILE->NEW->创建新项目 (2)选择MFC应用程序,并命名 (3)“基于对话框”类型,其他默认 (4)修改界面 (5)为EDIT控件添加类的成员变量 (6)添加按钮控件的消息处理函数

2014-03-26

灰度图像转伪彩色图像(求差异图)

把BMP图像转成伪彩色图,MATLAB实现: clear all;close all;clc; I=imread('peizhun2.bmp'); imshow(I); I=double(I); [m,n]=size(I); L=256; for i=1:m for j=1:n if I(i,j)<L/4 R(i,j)=0; G(i,j)=4*I(i,j); B(i,j)=L;

2014-03-20

高级算法课程:模拟退火算法SA()的实现代码C++

高级算法课程:模拟退火算法SA()的实现代码C++ const int nCities = 99; //城市数量 const double SPEED = 0.98;//退火速度 const int INITIAL_TEMP = 1000;//初始温度 const int L = 100 * nCities;//Markov 链的长度

2014-03-02

android开发摄像头实现前置后置切换

开发的android摄像头小程序,实现前置后置切换功能

2013-12-11

空空如也

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

TA关注的人

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