自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (8)
  • 收藏
  • 关注

原创 智能家居1 涂鸦开关接入homeassistant

一、获取涂鸦开关的localkey参考原文:https://bbs.hassbian.com/forum.php?mod=viewthread&tid=12168&highlight=%E6%B6%82%E9%B8%A6Linux(如树莓派)需要安装运行tuyapi/cli 这个软件,示例:npm i @tuyapi/cli -g。 如果出现权限错误,前面加个sudo命令 。1. 待获取localkey设备要绑定涂鸦智能或智能生活其中一个APP。2. 涂鸦 IoT 平...

2021-04-24 22:29:28 14375 1

原创 归并排序之逆序对

归并排序是基于分治法的思想,

2014-07-03 17:18:38 473

原创 求1到N的所有整数中“1”的个数

题意:给定一个十进制的整数N,求出1到N

2014-06-30 22:17:13 2864

原创 八皇后-采用排列的方法做的

题意:求八皇后的摆法显然8个皇后肯定是不能哎

2014-06-08 21:14:23 536

原创 字符串的组合

题意:对一个字符串str,求其字符的所有组合。例如字符串abc,

2014-06-08 20:17:22 500

原创 字符串的排列

题意:输入一个字符串,输出该字符串中字符的所有排列,比如输入abc,则输入

2014-06-08 17:29:08 420

原创 对c语言printf的分析

很多人都知道c语言中的printf语句才输出

2014-04-24 11:03:46 593

转载 浅谈C语言中函数参数的入栈顺序

原文地址:http://soft.chinabyte.com/database/138/12116138.shtml

2014-04-24 10:18:35 520

原创 浅谈gcc和g++的相同点与不同点

以前我总以为gcc只能编译c文件,g++只能编译cpp文件,对

2014-04-24 08:39:11 573

原创 二叉搜索树转化为双向链表

题意:给定一棵二叉搜索树,将该二叉搜索树转化为

2014-04-24 08:38:23 551

原创 二叉树的定义

Binary.h#include using namespace std;typedef struct BiTNode{ struct BiTNode *lchild; struct BiTNode *rchild; int data;}BiTNode, *BiTree;void CreateBinaryTreeNode(BiTree *pNode, int

2014-04-24 08:36:53 476

原创 在.c文件中调用cuda函数

问题描述:假设在Ubuntu的一个用户目录下有2个文件,main.c, VectorAdd.cpp,其中 VectorAdd.cpp有vectorAdd函数,main.c提供程序的入口main函数。现在为了在main.c中实现两个向量相加的操作,就需要调用 VectorAdd.cpp中的vectorAdd函数首先列出三个文件中的内容//VectorAdd.cppextern "C"

2014-04-19 17:17:23 6297 3

原创 在.c文件中调用c++定义的函数

问题描述:用c语言写的程序

2014-04-19 16:57:46 5283 1

原创 最长公共子串

求strA和strB的最长公共子串,这里子串是连续的,区别于子序列  解体思路:假设已知以strA[i]和strB[j]为结尾字符的最长公共子串的长度为lcs[i,j],那么以strA[i+1]和strB[j+1]为结尾字符的最长公共子串的长度有两种情况:  1.lcs[i+1,j+1] = 0, 此时strA[i+1] != strB[j+1]  2.lcs[i+1,j+1] = l

2014-04-17 22:29:29 576

原创 求二叉树中节点的最大距离

题意:给定一棵二叉树,假设父子节点定义两个节点之间的边数为“距离”,现在需要求一棵二叉树中最远两个节点的距离*/  5 /*显然两个节点肯定是叶子节点  6   根据是否经过根节点,分两种情况考虑  7   1.如果不经过根节点,那么最远的距离要么在左子树中,要么在右子树中  8   2.如果经过根节点,那么肯定一个节点在左子树中,另一个节点在右子树中  9    10  

2014-04-10 22:19:04 507

原创 图的一些基本算法

#include #include using namespace std;#define MAXSIZE 100#define INFINITY 65535typedef char VertexType;typedef int EdgeType;/*用链表表示*/typedef struct EdgeNode{ int adjvex; EdgeType weight;

2014-03-10 21:36:50 423

原创 最长公共子序列(poj1458)

本题来自poj1458,题目大意:给定两个字符串X,Y,求X,Y的最长公共子序列,不要求子序列连续,但子序列在X,Y中的位置是严格单调递增的。例如 abcfbc与abfcab的最长公共子序列就是abcd,其长度为4;programming和contest的最长公共子序列就是on,其长度为2;abcd和mnp的最长公共子序列为空可以采用动态规划的方法来解该题,计算字符串A、B的最长公共子序列

2014-03-09 11:09:33 658 1

原创 poj1050-求二维数组子数组和的最大值

题意:给定一个二维数组,值有正有负,矩阵的规模不超过100*100,矩阵元素在-127到127之间,求该二维数组的一个子数组,使得该数组的元素之和在所有的子数组中是最大的。解法一:对整个矩阵进行枚举,采用四重循环,计算每个子矩阵的元素之和,在计算所有的子矩阵之和是有很多重复的计算,可以考虑用“空间换时间”的方法,先计算出以(1,1)为左上点,(i,j)为右下点所表示的矩阵元素之和为part

2014-03-07 21:52:14 1378

原创 poj2479-在一个数组中求任意不相交的两个子数组之和的最大值

该题的重点在于求一个数组中子数组之和的最大值,采用动态规划的方法求解,已知数组A[n]假设已求得了A[i,n]中子数组之和的最大值,那么将A[i-1]加入进来后就出现了3种情况。A[i-1]就是A[i-1,n]中子数组之和的最大值A[i-1,...,j](iA[i-1]加进来后对子数组之和的最大值没有影响令A[i,n]子数组之和的最大值为nAll,以A[i]开头的,且是A[i,n]的子

2014-03-07 10:29:46 846

原创 寻找数组中的第k个数(序)

在上篇博客中寻找数组中的第k个数时每次排序所选择的pivot是随机选择的,在这篇博客中,我采用的是算法导论中讲的一种方法(算法导论上论证了该方法在最坏的情况下其运行时间都是线性的),尽可能使得划分后pivot两边数的个数差不多,具体步骤如下:将数组中[low,high]之间的数以长度5为单位,分成1 + (high - low) / 5组("/"表示整数除)寻找每一组中的中位数,先将每

2014-03-06 19:54:28 493

原创 寻找数组中的第k个数

寻找数组中第k个最大的数跟快速排序的原理是类似的,快速排序的一次排序中是将数组的[i,j]段分为三部分[i,pivot-1],pivot,[pivot+1,j],那么pivot就是[i,j]中的第pivot-i+1个元素。那么把数组进行一次排序后,如果pivot就是第k个元素,则就达到了目的;如果pivot比k大,则表示第k大的元素在[i,pivot-1]中,因此现在就需要在[i,pivot-1]

2014-03-06 15:24:03 543

原创 快速排序

PartitionOne是一种常规的划分方法,使用low和high指针从数组的两端进行处理。PartitionTwo是从low到high的方向进行处理,当数组部分有序时,[0-j]表示小于sentinel的元素,[j+1,i]表示大于sentinel的元素,当某个待处理的数小于sentinel时(下标为i+1),就将数组中j+1与i+1位置上的数互换,那么此时[0-j+1]就表示小于senti

2014-03-06 11:33:08 351

原创 串的模式匹配算法

串的模式匹配算法,从下标0开始计算的。void GetNext(char s[], int length, int next[]){ int i = 0, j = -1; next[0] = -1; while(i < length) { if(-1 == j || s[i] == s[j]) { i++; j++; next[i] = j; } e

2014-02-25 11:38:58 493

原创 cuda中结构体的赋值

#include #include #define N 10typedef struct{ int *A; int *B;}vn;typedef struct{ vn *v_n; int *m; int *n;}data;__global__ void kernel(data *d, int n){ int idx = threadIdx.x; if(id

2014-01-22 16:01:18 4484

原创 浅谈如何将linux上的程序移植到windows上

UMFPACK在windows上的完美运行UMFPACK是一种求解大规模稀疏线性方程组的方法,它采用的是多波前的直接求解方法,是目前求解稀疏方法最好的方法,这是一个开源的项目,但从网上下的源代码只能在linux运行,由于项目的需求,需要将该项目移植到windows上,并在vs2010中建立可跟踪调试的工程。查阅了大量的资料发现目前将linux上的程序移植到windows上绝大部分都是使用的cy

2013-12-02 19:21:38 8272 1

原创 给定一个字符串,去除整个字符串中重复的字符

该题与我前面的一篇博客判断一个字符串是否是唯一的很相似。可以分两种情况来讨论:1、不许使用额外的存储空间;2、可使用额外的存储空间s表示待处理的字符串,l表示当前非重复字符的个数1、不许使用额外的存储空间对每个待处理的字符,可以考虑在后处理和在前处理在后处理:对每个待处理的字符,假设为c,从该字符的后一个字符开始,直到字符串的末尾,如果有字符与c相同,就将该位置的字符标记为无效,处

2013-11-27 21:49:43 10103

原创 关于两个对象交换的扩展

前面一节,我讲到了两个对象交换的四种方法,今天,通过调试,来比较下这四种方法的汇编代码,测试环境为vc6.0temp = a;mov eax, dword ptr[ebp + 8] //ptr[ebp + 8]为a的地址mov ecx, dword ptr[eax] //在ecx中暂存a中的内容mov dword ptr[ebp-4], ecx //ebp-4为c的地址,将a的值赋

2013-11-21 21:25:23 676

原创 关于两个对象的交换

为使问题简单化,设定a、b为整型定义如下:int a;int b;要求做到将a,b的值互换方法1:使用中间变量tempint temp;temp = a ;a = b;b = temp;方法2:不使用中间变量,采用异或的方法a = a^b;b = a^b;a = a^b;方法3:不使用中间变量,使用加减法a = a + b;b = a - b;a = a - b

2013-11-20 22:03:02 698

原创 如何判断一个字符串中的字符是否唯一

假设字符集是ASCII字符解法一:使用一个长度为256的bool型数组,数组中的每一个元素与ASCII字符集中的字符相对应,数组最开始初始化为false,当处理一串字符时若某个字符所对应的数组中该位置的元素为true,则表示该字符已在前面出现,即这个字符串中的字符不唯一。如若所对应位置的元素为false,则将该元素赋值为true。然后在继续处理剩下的字符串。bool isUnique(

2013-10-29 00:29:35 826

原创 gdb调试(一)

在使用gdb前,要先载入可执行文件,因为要进行调试,文件中就必须包含调试信息,因此在使用gcc编译时需要使用-g参数来打开程序的调试选项(若不使用-g参数,使用list命令时就会出现“没有符号表被读取”的信息)。1使用gdb命令+可执行文件名就可进入调试eg:gcc -g gdbtest.c -o gdbtest(生成gdbtest可执行文件)         gdb gdbtest

2013-10-22 21:21:03 414

原创 一种新的排序算法

<br />  我们在对一堆数据进行排序的时候,可能会存在这样的一种情况,所有的数都是整数,而且在某个范围了,例如一个班上所有学生的成绩(在这里我们默认为所有的成绩都是整数),在对这些数进行排序是我们可以不用快排、堆排序、希尔排序等算法,而是采用这样的一种算法。由于成绩都是在100以内,因此我们定义一个数组grade[100],初始化为0,grade[i]存放的是成绩为i的人数,只需循环一遍就可以将顺序排出来。

2011-05-21 00:22:00 257 1

多边形裁剪

实现了求两个多边形的相交、相离、及相差的部分。 实现了求两个多边形的相交、相离、及相差的部分。

2012-05-06

黑白棋 反棋(Reversi) 奥赛罗棋(Othello) 苹果棋 翻转棋

完全是自己动手编的,实现了可视化的界面,相信会让你满意的。

2011-05-21

setup factory 8.0 序列号

setup factory 8.0用来给软件打包,相信你会喜欢的

2011-05-10

千千静听透明皮肤仿vista

很好看的一款皮肤,相信你会喜欢的。下载它是一种正确的选择。

2011-05-10

历届初级程序员考试真题

里面有很多套试题,对于想考程序员的人来说,真的是一个好东西。

2010-09-03

操作系统原理第三版答案

课后习题的绝大部分答案都在其中,希望对你有帮助!

2010-06-08

国际象棋中马的遍历的问题

算法是用c++来实现的,写的通俗、易懂,很容易就能够明白

2010-05-11

快速排序,堆排序,冒泡法

对算法中的几种排序的集成,把这些程序已经写在了一个头文件中

2010-05-11

空空如也

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

TA关注的人

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