- 博客(27)
- 资源 (6)
- 收藏
- 关注
转载 数组循环移位算法
要求:设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。不合题意的解法如下:我们先试验简单的办法,可以每次将数组中的元素右移一位,循环K次。abcd1234→4abcd123→34abcd12→234abcd1→1234abcd。版本1void RightShift(char *arr, int N, int k
2014-04-08 21:45:24
817
转载 C语言编译时的字对齐现象
先看下面代码#includeint main(){struct X {int a;char b;int c; }; printf("%d,",sizeof(struct X));struct Y {int a;char b ;int c;char d;}; printf("%d\n",sizeof(struct Y));return 0;}
2014-04-03 21:12:43
761
原创 串的模式匹配——KMP算法
KMP算法代码如下:int Index_KMP(SString S,SString T,int pos){ i=pos;j=1; while(i<=S[0]&&j<=T[0]) { if(j==0||S[i]==T[j]) {++i;++j;} else j=next[j]; } if(j>T[0]) return i-T[0];
2014-04-01 16:48:11
768
转载 Android必备java知识点
Android应用程序开发是以Java语言为基础的,所以需要有扎实的Java基础知识。首先熟悉java基本语法,然后熟悉设计模式等。 a) Java基础语法:看下面的《Java知识点列表》 b)设计模式:由于在Android系统的框架层当中,使用了大量的设计模式,如果没有这个方面的知识,对于Android的理解就会大打折扣。
2014-03-25 20:47:21
967
转载 寄存器、存储器、内存的区别
从范围来看,它们所指的范畴不一样。寄存器是中央处理器内的组成部份。它跟CPU有关。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。 存储器范围最大,它几乎涵盖了所有关于存储的范畴。寄存器,内存,都是存储器里面的一种。凡是有存储
2014-03-23 11:25:21
17680
转载 C#的装箱与拆箱
装箱(boxing)和拆箱(unboxing)是C#类型系统的核心概念.是不同于C与C++的新概念!,通过装箱和拆箱操作,能够在值类型和引用类型中架起一做桥梁.换言之,可以轻松的实现值类型与引用类型的互相转换,装箱和拆箱能够统一考察系统,任何类型的值最终都可以按照对象进行处理. C#语言中的所有类型都是由基类System.Object继承过来的,包括最常用的基础类型:int, byte,
2014-03-21 22:01:36
518
原创 对象编程两个重要的相等概念
对象编程有两个重要的相等概念:值相等和引用相等。值相等的意思是它们的数据成员按内存位分别相等。引用相等则是指它们指向同一个内存地址。引用相等必然推出值相等,值相等却未必能推出引用相等。对于值类型关系等号“==”判断两者是否值相等(结构类型和枚举类型没有定义关系等号“==”,我们必须自己定义)。对于引用类型关系等号“==”判断两者是否引用相等。
2014-03-21 21:50:59
758
1
转载 图像染色问题
一、题目:3.20③ 假设以二维数组g(1..m,1..n)表示一个图像区域,g[i,j]表示该区域中点(i,j)所具颜色,其值为从0到k的整数。 编写算法置换点(i0,j0)所在区域 的颜色。约定和(i0,j0)同色的上、下、左、右的邻接点为同色区域的点。 实现下列函数: void ChangeColor(GTYPE g, int m, int n, ch
2014-03-20 22:34:15
1365
原创 用占位符%p输出变量在内存中的具体地址
占位符%p可以让printf语句输出变量在内存中的具体地址,如下:#includeint main(){ int a=10; printf("the address that %p has stay a number :%d\n",&a,a);}
2014-03-17 22:04:40
1186
原创 C#的引用、属性、构造函数
引用c#的引用类似于C语言的指针。如:class Person{ int age;string name;}Person p1,p2;//此表达式执行后,系统只是分配了两个地址来存放这两个类变量名,并没有分配长度为int+string大小的空间p1.age=10;//此两式执行后系统分配了内存用以存储p1.age和p1.name的值,而p1则指向这个内存空间p
2014-03-15 16:41:14
1284
原创 带头结点的单链表实现就地逆置的更优方法
在习惯上,我们在实现链表的逆置时都会采用从第一个结点开始遍历并不断将链表的指向逆置的方法,但这样做效率其实不高。假设要逆置的链表为L,更好的方法是先用指针p保存L-〉next,再将链表L的头结点置为Null,亦即L-〉next=Null,而后将p所指向的原存在于L的各个结点插入在已经置空的L中,作为L的第一个元素结点,p则每次下移用于记录剩下结点的位置。具体代码如下:p=L->next;L
2014-03-13 21:34:31
3169
转载 堆与栈的区别
在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋友中有好多也说不清堆栈,所以我想有必要给大家分享一下我对堆栈的看法,有说的不对的地方请朋友们不吝赐教
2014-03-11 22:13:58
495
原创 高效地初始化一个链表
建立一个带有头结点的链表并将之初始化,通常有两种方法:1、每次开辟一个新结点并将之接在链表末尾处 2、每次开辟一个新结点并将之接在链表开头处,即接在头结点之后。方法一在每次开辟新结点后还要用一个循环
2014-03-11 12:58:34
1686
转载 C#中using关键字用法
C#中using关键字用法 1、引用命名空间。 2、为命名空间或类型创建别名。 3、使用using语句。 1、引用命名空间,这样就可以直接在程序中引用命名空间的类型而不必指定详细的命名空间。 这个就不用说了吧,比如大家最常用的:using System.Text;
2014-03-09 15:31:53
805
原创 C#的封装、继承和多态
类的封装C#通过类来达到封装的效果,使数据和方法封装成单一元素,以便于通过方法存取数据,并且可以控制数据的存取方式。面向对象编程通常将类作为数据封装的基本单位,类将数据和操作数据的方法结合成一个单位。设计一个类时,不希望直接存取类中的数据,而是希望通过方法来存取数据,即可方便日后升级,也可在操作数据是多一层判断。封装还可以解决数据存取的权限问题,封装将数据隐藏起来,形成封闭区间,用访问修饰
2014-03-09 15:17:04
865
转载 字和字节和位的关系
1、位(bit) 来自英文bit,音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位,11010100是一个8位二进制数。一个二进制位只可以表示0和1两种状态(21);两个二进制位可以表示00、01、10、11四种(22)状态;三位二进制数可表示八种状态(23)……。 2、字节(byte) 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。 字节
2014-03-08 16:46:25
9586
原创 C#的var关键字
当用var关键字声明变量时,编译器根据变量的初始值推测出相应的数据类型,并将其设置为该变量的类型,如果在作用域内给变量赋予有别于初始值的数据类型的值,则产生编译错误。为提高程序可读性,该关键字不易滥用。var variable =InitialValue;var arrayname=new []{element lists};var example=new TypeName();
2014-03-07 22:11:35
574
原创 控制台的输入输出
C#用Console来实现控制台的输出的方法有:1.Console.WriteLine();2.Console.Write();3.Console.WriteLine(输出的值);4.Console.Write(输出的值);5.Console.WriteLine("输出的格式字符串",变量列表);6.Console.WriteLine("输出的格式字符串",变量列表);
2014-03-07 21:59:08
766
原创 向顺序表插入新元素且不破坏其顺序性的高效率算法
向顺序表L插入新元素x时可以由最后一个元素开始遍历,在遍历的同时进行移位赋值操作,如当遍历到的元素L.elem[i]比x大时,将L.elem[i]后移在下个元素的位置,而其所在位置则由x占有,当遍历到的元素L.elem[i]比x小时,则跳出循环,目的已经达到,具体算法如下:void InsertOrderList(SqList &L, ElemType x)// 在有序的顺序表 L 中保序
2014-03-07 16:40:35
1371
转载 C语言中realloc()使用的说明
首先看个问题程序(这里用的是TC编译器):#include "stdlib.h"#include "stdio.h"void main(){ int *i; i=(int *)malloc(sizeof(int)); *i=1; *(i+1)=2; printf("%x|%d\n",i,*i); printf("%x|%d",i+1,
2014-03-04 17:20:36
864
转载 C语言中malloc,calloc,realloc,free的语法与作用
四个函数的声明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t nelem, size_t elsize); free(q);
2014-03-04 17:13:20
758
原创 typedef定义的struct类型与struct定义的结构体变量在使用上的区别
typedef struct{int number;char[20] name;char sex;}Student;此定义的Student可作为一个类型名定义struct类型变量,可以这样定义新变量:Student stu1;。struct Student{int number;char[20] name;char sex;
2014-03-04 16:55:44
783
Kinect代码
2013-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人