摘要: 从根本上而言是对插入排序算法的一种改进。基本思想:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。直接插入排序的作法是:每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中;第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中; 阅读全文
posted @ 2010-05-31 19:14 lcymail 阅读(1562) 评论(3) 推荐(0) 编辑
摘要: 宏定义:#define名字替换文本较长的宏定义可以分多行,这时需要在待续的行末尾加上一个反斜杠\。宏定义也可以带参数:#definemax(A,B)((A)>(B)?(A):())使用宏时需要注意参数表达式的副作用影响。可以通过#undef指令取消名字的宏定义。条件包含:为保证引用的文件只被包含一次,可以使用:#if!defined(HDR)#defineHDR/*将文件包含于此*/#endif指针是能够存放一个地址的一组存储单元。一元运算符&可以用于取一个对象的地址。地址运算符&只能应用于内存中的对象,即变量与数组元素。它不能作用于表达式、常量或register类型的变 阅读全文
posted @ 2010-04-10 15:05 lcymail 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 程序规模不是很大时,最好用只用一个头文件存放程序中各部分共享的对象。用static声明限定外部变量与函数,可以将其后声明的对象的作用域定为被编译源文件的剩余部分。如果把函数声明为static类型,则该函数名除了对该函数声明所在的文件可见外,其它文件都无法访问。不进行显式初始化的情况下,外部变量和静态变量都将被初始化为0,而自动变量和寄存器变量的初始值则没有定义。Register声明告诉编译器,它所声明的变量在程序中使用频率较高。其原理是将该变量放在机器的寄存器中。Register声明只适用于自动变量以及函数的形式参数。无论寄存器变量是不是存放在寄存器中,它的地址都是不能访问的。快速排序基本思想 阅读全文
posted @ 2010-04-07 23:37 lcymail 阅读(177) 评论(0) 推荐(0) 编辑
摘要: goto语句用在某些情况下,最常见的用法是终止程序在某些深度嵌套的结构中的处理过程,例如一次跳出两层或多层循环。如果没有函数原型,则函数将在第一次出现的表达式中被隐式声明。如果函数带有参数,则要声明它,如果没有参数,则使用void进行声明。外部变量与函数具有如下性质:通过同一个名字对外部变量的所有引用实际上都是引用同一个对象。标准中将这一性质称为外部连接。如果两个函数必需共享某些数据,而这两个函数互不调用对方,这种情况下最方便的方式便是把这些共享数据定义为外部变量,而不是作为参数传递。如果要在外部变量的定义之前使用该变量,或者外部变量的定义与变量的使用不在同一个源文件中,则必需在相应的变量声明 阅读全文
posted @ 2010-04-03 15:01 lcymail 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 折半查找:intbinsearch(intx,intv[],intn){ intlow,high,mid; low=0; high=n-1; while(low<=high) { mid=(low+high)/2; if(x<v[mid]) high=mid-1; elseif(x>v[mid]) low=mid+1; else returnmid; } return-1;}Switch语句中,break将导致程序的执行立即从switch语句中退出。否则,当第一个匹配的分支执行完后,程序将进入下一个分支继续执行,除非在程序中显式地跳转。voidmain(){ charc=&# 阅读全文
posted @ 2010-04-02 22:49 lcymail 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 标准头文件<ctype.h>定义了一组与字符集无关的测试和转换函数。例如tolower(c)函数将c转换为小写形式。Isdigit(c)用以判断c是否为数字字符,即等同于c>='0'&&c<='9'。为了保证程序的可移植性,如果要在char类型的变量中存储非字符数据,最好指定signed或unsigned限定符。进行算数运算时,float类型的操作数不会自动转换为double类型。当把较长的整数转换为较短的整数或char类型时,超出的高位部分将被丢弃。标准库中包含实现了伪随机数发生器的函数rand,以及一个初始化种子数的函 阅读全文
posted @ 2010-03-31 22:59 lcymail 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 函数间可以使用外部变量交换数据,而不必使用参数表。在需要访问外部变量的函数中,须声明响应的外部变量,以说明其类型。可以用extern语句显示声明,也可以通过上下文隐式声明。如果外部变量定义在使用它的函数之前,可以不必使用extern声明,此种情况即为隐式声明。如果外部变量需要在不同的文件中使用,则通常把变量和函数的extern声明放在一个单独的文件中(称为头文件),并在每个源文件的开头使用#include语句把该头文件包含进来。头文件以.h为扩展名。short和long限定符可以表示不同的长度的int类型,通常short为16位而long为32位。signed和unsigned用于限定char 阅读全文
posted @ 2010-03-18 20:47 lcymail 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 宿主机网络配置(例如): IP地址:192.168.0.211 掩码:255.255.255.0 网关:192.168.0.2 DNS:202.102.224.68可在WindowsXP的cmd命令提示行,使用ipconfig/all命令查看。运行VMwareWorkstation,单击EditàVirtualNetworkSettgings...在VirtualNetworkEidtor中,单击“AutomaticBriding”(自动桥接)选项卡,去掉自动桥接功能。Vmware选择NAT接入方式,默认有两个虚拟连接:VMnet1和VMnet8,后者是专为NAT使用的。这里默认的I 阅读全文
posted @ 2010-03-02 22:06 lcymail 阅读(978) 评论(1) 推荐(0) 编辑