自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 问答 (1)
  • 收藏
  • 关注

原创 一个简单的例子讲解makefile

目录结构:本人最近在做一个比较大项目,涉及到makefile和cmake等,现在把自己的一些经验写一下。我用一个简单的例子来介绍,.hpp .cpp在不同目录下时如何用一个makefile来编译它们。我的目录是这样的:介绍一下目录结构:inlcude存放头文件.h或.hppsrc存放资源文件.cppobj存放目标文件.obin存放可执行文件makefile:...

2018-08-26 22:12:00 1326

原创 openwrt配置OLSR路由协议并实现Ad hoc组网

准备工作:这里首先介绍一下准备工作,如何在编译openwrt的时候把OLSR的相关包加入进去make menuconfig 后出现如下界面进入 Network -\> OLSR.org network framework -\> 为了防止缺少包,将里面全部内容都选取。需要注意的时注意最后一行oof-olsrd2这一行,选中回车进入后还有一个optional p...

2018-08-15 17:16:29 6222 4

原创 用Python解决TSP问题(3)——分支限界法

文章源码在Github:https://github.com/jinchenghao/TSP本介绍用python解决TSP问题的第三个方法——分支限界法算法介绍分支限界法的步骤如下:1)     按宽度优先策略遍历解空间树2)     在遍历过程中,对处理的每个结点i,根据界限函数,估计沿该结点向下搜索所可能达到的完全解的目标函数的可能取值范围—界限bound(i)=[dow(i), up(i)]...

2018-06-25 20:56:14 10273 10

原创 用Python解决TSP问题(2)——动态规划算法

文章源码在Github:https://github.com/jinchenghao/TSP本介绍用python解决TSP问题的第二个方法——动态规划法算法介绍动态规划算法根据的原理是,可以将原问题细分为规模更小的子问题,并且原问题的最优解中包含了子问题的最优解。也就是说,动态规划是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法...

2018-06-25 20:41:47 20822 12

原创 用Python解决TSP问题(1)——贪心算法

关于TSP问题网上有很多介绍,这里再简单描述一下。旅行商问题(TravelingSalesmanProblem,TSP)一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要遍历所有城市一次且只能一次,回到出发地。应如何选择行进路线,以使总的行程最短。目前解决TSP问题的方法有许多种,比如:贪心算法、动态规划算法、分支限界法;也有智能算法,比如:蚁群算法、遗传算法、A*等。由于网上使用...

2018-06-25 20:27:28 17108 4

原创 INET移动模块介绍

1.1Overview为了准确评估一个ad-hoc网络的协议,为移动主机的运动使用一个真实的模型是很重要的。信号强度,无线电干扰和信道占用等都取决于节点之间的距离。移动模型的选择可以显着影响模拟结果。(例如,数据分组传送比率,端到端延迟,平均跳数)有两种将移动纳入仿真模拟的方法:使用轨迹。轨迹包含移动主机的一组动作记录,像现实生活中观察到的那样。使用合成模型。合成模型使用数学模型来描述移动主机的行...

2018-05-13 16:54:23 1908

转载 Java中的equals和==

在初学Java时,可能会经常碰到下面的代码:1 String str1 = new String("hello");2 String str2 = new String("hello");3 4 System.out.println(str1==str2);5 System.out.println(str1.equals(str2));  为什么第4行和

2018-01-11 17:14:16 161

原创 监督学习 - 线性回归

本文介绍linear regression的相关知识,作为监督学习中的一个重要的方法和手段,其重要性不言而喻。其实线性回归的应用十分简单,就是在一组数样本(x,y)中发现一定规律,用来对新的xi预测新的yi。就比如下图有这样一组数据:然后我们根据已知的这些数据,通过线性回归进行学习,得到这样的一条直线就可以根据新的房屋面积预测价格了。当然实际要复杂很多,也可能不是一条直线,甚至不在

2017-12-21 19:58:21 685

原创 Uninformed search

Depth-First Search(DFS)、Breadth-first search(BFS)、Depth-limited search (DLS)、Iterative deepening search(IDS)、Uniform-cost search(UCS)

2017-12-21 19:49:41 3852

原创 青蛙跳台阶问题

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解:这是一个典型的斐波那契额数列问题。(1)假设青蛙已经到了顶部,那么它可能是从n-1或者n-2的地方上来的,也就是说f(n) = f(n-1)+f(n-2);(2)如果是从n-1的台阶上来的,那么它可能是从n-2或者n-3上来的,即对于f(n-1) = f(n-2)+f(n-3)(3

2017-11-10 15:10:34 189

转载 Ubuntu 14.04安装JDK1.8.0_25与配置环境变量

本文转载自:http://www.linuxidc.com/Linux/2015-01/112030.htm以下是Ubuntu 14.04安装JDK1.8.0_25与配置环境变量过程笔记。1、源码包准备:首先到官网下载jdk,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downlo

2017-08-02 15:54:50 301

转载 一个经典例子让你彻彻底底理解java回调机制

以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式:Class A实现接口CallBack callback

2016-12-13 15:07:29 277

原创 Python学习日记(二)--Python的安装与配置

对于3.x和2.7选哪个就不要纠结了,果断选Python3.0,这是未来的趋势。下载地址:https://www.python.org/downloads/下载最新版的就行,我下载的是3.5.1。按步骤安装,然后配置环境变量。具体步骤就不说了,可以自己问度娘或者去慕课看看相关视频。说一下IDE,现在用的比较多的是pycharm和eclipse+pyDev,因为我习惯了用eclips

2016-12-02 20:29:54 331

原创 python学习日记(一)

关于Python这门语言的优势和前景我就不多说了,博主也是最近开始进出这门语言,然后就深深的迷恋上了Python。python语言追求的是最好的解决方案,相对来说其他语言追求的是更多解决方案;如果你用Python写了一段不错的代码,你会发现这段代码跟英语一样容易理解。话不多说进入正题:  本文是博主的学习日记,当然从最基础的安装和一些基本语法(不详细介绍)到后期的爬虫、MongoDB以及

2016-12-02 20:02:30 374

原创 java算法(一)——排序算法(下)之 合并排序

合并排序(MergeSort)算法就是将多个有序数据表合并成一个有序数据表的过程,如果只有两个有序数列则成为二路合并。 以下是合并排序的具体算法:import sun.net.www.content.text.plain;import com.sun.accessibility.internal.resources.accessibility;public class MergeSort {

2016-08-24 22:45:59 476

原创 java算法(一)——排序算法(下)之 快速排序

快速排序算法跟冒泡排序类似,都是基于交换排序的思想,快速排序是对冒泡排序的改进。快速排序通过多次比较和交换实现排序,其排序流程如下:(1)首先设置一个分界值,通过该分界值将数组分为左右连部分。 (2)将大于等于分界值得数据集中到数组右边,小于分界值得移动左边。 (3)对左右两边继续取分界值,移动数据。 (4)重复上述过程,可以看出这是一个递归定义。通过递归将左侧数据排好序后在递归右

2016-08-15 23:26:30 269

原创 java算法(一)——排序算法(下)之 插入排序

插入排序算法通过比较和插入来进行排序,其流程如下: (1)首先对数组的前两个数据进行从大到小排列 (2)接着将第3个数据与排好的前两个数据进行比较,将第3个数据插入合适的位置。 (3)然后,将第4个数据插入已排序的前3个数据中。 (4)不断重复上述过程。static void insertionSort(int a[]){ int i,j,t,h; f

2016-08-14 20:38:52 243

原创 java算法(一)——排序算法(下)之 shell排序

前面介绍过插入排序,其实shell排序的思想跟插入排序一样。具体过程如下: (1)将n个元素的数组分成n/2个数字序列,第1个与第n/2+1个为一组。 (2)对这些元素插入排序 (3)然后,变为n/4个数字序列,再次排序。 (4)不断重复,直到序列变为1个。 数字4 5 8 7 1 6 3 7 序号0 1 2 3 4 5 6 7第一次4 1|5 6|8 3|7 7四组 排序后:1 5

2016-07-17 21:16:24 362

原创 用java解决LeetCode(1)——Add Two Numbers

问题: You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a

2016-07-10 19:06:04 260

原创 用java解决LeetCode(1)——Two Sum

问题: Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution.Example:Given nums = [2, 7,

2016-07-10 19:01:14 289

原创 java数据结构(五)——图论

树结构有一个基本的特点就是数据元素之间有层的关系,每一层的元素可以和多个下层元素关联,但是只能和一个上层元素关联。如果扩展一下,每个数据元素之间可以任意联系,这就构成了一个图结构,研究图结构的一个专门理论就是图论。 图的构成: 顶点(Vertex):图中的数据元素。 边(Edge):图中连接这些顶点的线。 具体的图的相关结构不再赘述,自行百度。 1.数据准备class GraphMat

2016-07-09 20:53:43 819

原创 java数据结构(四)——栈

树结构是一种描述非线性关系的数据结构。对于树的基本概念不想过多赘述,可以自行查阅相关资料,这里主要讲解一种简单的树结构——二叉树。二叉树是树的一种特殊形式,它有n个结点,每个结点最多有两个子结点。二叉树的子树仍然是二叉树,二叉树的两个子树分别是左子树和右子树,因此二叉树也是有序树。二叉树又分为:完全二叉树和满二叉树,概念不再详述,自行查找。 完全二叉树的性质: 1、如果m!=1,则结点m的父

2016-06-24 22:25:22 295

原创 java数据结构(三)——队列

队列结构是从数据运算来分类的,也就是说队列结构具有特殊的运算规则。从数据运算角度讲,队列结构是按照“先进先出”(First in First Out, FIFO)的原则处理结点数据的。队列是一种线性结构,从存储角度分可分为以下两种:1.顺序队列 2.链式队列基本操作:1.入队列:将一个元素添加到队尾(相当于到队列最后排队等候)。2.出队列:将队头元素取出,同时删除该元素,使后一个元

2016-06-18 09:31:15 322

原创 java算法(一)——排序算法(上)

排序(sort)是将一组数据按照一定的规则来进行排列,一般按照递增或者递减的顺序来进行排列。排序算法是一种最基本的算法,但是在实际应用中非常广泛,对于初学编程人来说,排序算法也是最基本的算法之一。本节主要讲解排序算法中相对简单的几种,分别是: 1、冒泡排序 2、选择排序 3、插入排序  后边还会介绍一些,其他的排序方法,比如:shell排序、快速排序、堆排序等等。1、冒

2016-06-12 14:42:41 400

原创 安卓开发(二)ListView显示菜单,SQLite存储和ListView显示

本次的安卓应用介绍的是listview和安卓SQLite数据库的应用,主要功能是: 1.创建数据库,并可以向数据库中添加菜单。菜单的条目有:编号、图片、名称、价格、简介。2.读取数据中的菜单,并在自己设计的ListView里面显示对应条目。我采用的是SimpAdapter.具体代码如下:布局文件:main.xml<LinearLayout xmlns:android="http://schemas

2016-06-10 16:15:35 1148

原创 java数据结构(二)——栈

在程序设计中,大家一定接触过“堆栈”,其实堆和栈是两个完全不同的概念,栈是一种特殊的数据结构。在中断处理中常用来保护现场。  在栈的结构中,只能在栈的一端进行数据操作,这一端成为栈顶,另一端成为栈底。即:数据的存取只能在栈顶进行。从数据运算的角度来分析,栈结构式按照“后进先出”(Last In Firt OUT,LIFO)的原则处理结点的。1.数据准备部分//数据class DAT

2016-06-06 16:10:59 336

原创 java数据结构(一)——线性链表

与C++类似java数据结构的线性表中也有顺序表和线性表。但是顺序表有几个缺点:1.插入删除操作不方便。2.存储空间必须连续,当表较大时无法申请到足够大的连续存储空间。所以,本文介绍链表结构。    链表具体结构如下:    1.数据部分,保存需要存储的数据。    2.地址部分,保存下一个节点的地址。代码主要包括数据结构和数据操作。数据结构部分:class DATA{

2016-06-01 12:57:22 561

原创 安卓Checkbox事件响应及存储

本文写了一个安卓应用程序,实现多个checkbox勾选,下次打开时可以记住上次勾选的状态。用setOnCheckedChangeListener来做事件响应,用SharedPreferences来存储。

2016-05-31 23:19:15 1021

原创 高版本ubuntu安装低版本arm-linux-gcc

1.下载arm-linux-gcc-3.4.1.tar.gz压缩包。2.解压并将3.4.1文件夹移到usr/local/arm目录下。cd usr/localmkdir armchmod 777 armsudo cp -r  /opt/Friendlyarm/3.4.1   /usr/local/3.配置环境变量    (1)修改/etc/bash.bashrc文

2016-05-31 21:43:13 1537

空空如也

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

TA关注的人

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