04 2014 档案

摘要:gcc在linux系统中,默认是没有安装gcc编译器的,可以通过命令rpm -q | grep gcc来查看。安装命令为:yum -y install gcc安装后,编写一个.c结尾的文件。gcc test.c就会默认输出一个a.out的输出文件,这个输出文件就是可执行文件。如果加上-o选项,则可以... 阅读全文
posted @ 2014-04-28 22:27 xingoo 阅读(18811) 评论(0) 推荐(0) 编辑
摘要:在OSI体系中,该层位于第二层,从下到上依次:物理层,数据链路层,网络层,运输层,会话层,表示层,应用层。在TCP/IP体系中,该层位于第一层,从下到上依次:网络接口层,网际层,运输层,应用层。在这层中,涉及到最重要的知识点1 帧的格式2 差错检验3 碰撞检测4 帧的长度问题MAC帧的格式6字节:目... 阅读全文
posted @ 2014-04-27 21:45 xingoo 阅读(445) 评论(0) 推荐(0) 编辑
摘要:这段代码,主要用于给标题转换默认样式,其他的可以自行修改参考/*标题*/#cnblogs_post_body h2 { background: none repeat scroll 0% 0% rgb(43, 102, 149); border-radius: 6px 6px 6px 6... 阅读全文
posted @ 2014-04-27 15:13 xingoo 阅读(2205) 评论(0) 推荐(0) 编辑
摘要:今天不小心在项目里面把一个 == 写成了 =,结果数据一下子崩溃了。后来测试,发现,换一个编译环境,或者换一个编译模式比如debug改成release,就好使了。1 测试流程2 测试数据3 测试环境后来在QQ群里面进行咨询,可能是项目默认debug模式下,有一个缓存文件。在VS里面,右键工程,点击重... 阅读全文
posted @ 2014-04-23 10:06 xingoo 阅读(17679) 评论(0) 推荐(0) 编辑
摘要:平衡二叉树,是一个方便查找的树,树的左子树深度与右子树的深度的差总(BF)是在+1,0,-1之中。随着树的建立,插入,树都会自动的进行调整,使得其满足上面的条件。1、+1表示左子树的深度比右子树的深度多1.2、0 表示左子树的深度与右子树的深度相同。3、-1表示左子树的深度比右子树神的小1.因此,如... 阅读全文
posted @ 2014-04-21 17:02 xingoo 阅读(998) 评论(0) 推荐(0) 编辑
摘要:快速排序时间复杂度为O(nlogn),由于是在原数组上面利用替换来实现,因此不需要额外的存储空间。算法思想: 通过设置一个岗哨,每次跟这个岗哨进行比较,比他小的放在左边,比他大的放在右边。再对岗哨左边的数组0----middle-1,和middle+1-----end,进行同样的排序。主要代码:v... 阅读全文
posted @ 2014-04-21 14:42 xingoo 阅读(886) 评论(0) 推荐(2) 编辑
摘要:非递归版的归并排序,省略了中间的栈空间,直接申请一段O(n)的地址空间即可,因此空间复杂度为O(n),时间复杂度为O(nlogn);算法思想: 开始以间隔为1的进行归并,也就是说,第一个元素跟第二个进行归并。第三个与第四个进行归并; 然后,再以间隔为2的进行归并,1-4进行归并,5-8进行归并;... 阅读全文
posted @ 2014-04-17 19:57 xingoo 阅读(12377) 评论(1) 推荐(4) 编辑
摘要:递归版的合并排序,时间复杂度为O(nlogn),空间复杂度为O(n+logn);算法思想: 利用分而自治的思想,把排序分成两块,每块内部排序,再进行一次遍历排序即可,递归调用此过程即可。主要代码:void MergeSort(int *arr,int length){ Msort(arr,a... 阅读全文
posted @ 2014-04-17 16:53 xingoo 阅读(1826) 评论(0) 推荐(0) 编辑
摘要:构建堆的时间复杂度为O(n),而第I次调整堆的时间复杂度为O(logi),因此,无论什么情况下时间复杂度都为O(nlogn)。算法思想: 首先,对数组从n/2处开始进行创建堆。大顶堆就是顶点总是大于它的子节点,而小顶堆就是定点总是小于它的子节点。 因此,构建时,对节点与他的孩子进行比较,如果创建... 阅读全文
posted @ 2014-04-14 17:34 xingoo 阅读(519) 评论(0) 推荐(0) 编辑
摘要:希尔排序的时间复杂度,最好的情况下仍然是正序时,可达到O(n),平均复杂度为O(nlogn)。算法思想: 采用跳跃式处理数组,使得数组粗粒度的实现基本有序。在进行细粒度的处理,最终使得网络在跳越数为1时,实现基本有序的排序,以减少插入排序的复杂度。主要程序:void shellSort(int *... 阅读全文
posted @ 2014-04-14 15:03 xingoo 阅读(576) 评论(0) 推荐(0) 编辑
摘要:时间复杂度:如果排序的数组是正序的,那么时间复杂度相当于O(n),而如果排序是随机的,时间复杂度相当于O(n^2/4).倒置的时间复杂度是最高的,O(n^2).算法思想: 该算法是设置了一个中间存储,每次读到的数据存储到中间值。向前遍历,如果大于这个值,继续向前,每次向前遍历时,把数据向后移,最后... 阅读全文
posted @ 2014-04-14 08:52 xingoo 阅读(509) 评论(0) 推荐(0) 编辑
摘要:选择排序时间复杂度也为O(n^2)算法思想:选择排序即每次length-i的长度内选择一个最小的元素,与第一个进行替换,这样大循环length次后,就可以得到排好序的数组了。主要代码:void selectSort(int *arr,int length){ int i,j,k,min; for(i=0;i#include int arrtest[10] = {3,4,7,8,0,9,1,2,6,5};//int arrtest[10] = {0,1,2,3,4,5,6,7,8,9};//int arrtest[10] = {9,8,7,6,5,4,3,2,1,0};void co... 阅读全文
posted @ 2014-04-09 16:44 xingoo 阅读(330) 评论(0) 推荐(1) 编辑
摘要:冒泡排序时间复杂度上为O(n^2)冒泡排序三种方式,第一种也是最基本的排序:void bubbleSort1(int *arr,int length){ int i,j,k; for(i=0;iarr[j]){ k = arr[j]; arr[j] = arr[i]; arr[i] = k; } } }}第二种是循环的时候,j指针从尾部开始,每次可以顺便排序其他的元素void bubbleSort2(int *arr,int length){ i... 阅读全文
posted @ 2014-04-09 16:29 xingoo 阅读(894) 评论(0) 推荐(0) 编辑
摘要:算法思想二叉排序树,删除操作主要针对三种情况。1 叶子节点-直接删除就可以了2 没有左孩子的节点-直接嫁接右子树就可以了(没有右孩子的节点-直接嫁接左子树就可以了)3 如果左右子树都存在,则寻找删除节点的直接前驱(即左子树里面的最右的节点)编程时需要注意,函数时针对指针的操作,因此为了修改指针,要使用二级指针传参才可以例如:void delete(BinaryTree **b){ ....}int main(){ BinaryTree *b = (BinaryTree *)malloc(sizeof(BinaryTree)); delete(&b);}函数代码:bool deleteT 阅读全文
posted @ 2014-04-09 15:37 xingoo 阅读(3235) 评论(0) 推荐(0) 编辑
摘要:在c程序中,我们可能经常会使用到指针之间的赋值。传统的赋值操作:char *cp = "c";const char *ccp;ccp = cp;printf("*ccp:%c",*ccp);会正常打印出*cpp所指的字符。但是下面的这段代码,就会出现问题:char **c = &cp;const char **cc;cc = c;printf("**cc:%c",**cc);编译的时候提示,出现错误:1>------ 已启动生成: 项目: oj1511, 配置: Debug Win32 ------1>生成启动时间 阅读全文
posted @ 2014-04-09 10:57 xingoo 阅读(1569) 评论(0) 推荐(0) 编辑
摘要:二叉排序树,是一种规整的二叉树。每个节点的左子树都小于他,每个节点的右子树都大于他。二叉树的遍历:void InOrderTree(BTree *b){ if( !b ) return; InOrderTree(b->lchild); printf("%d ",b->data); InOrderTree(b->rchild);}二叉树的查找:int searchTree(BTree *b,int key,BTree *f,BTree *&p){ if(!b){ p = f; return 0; } else i... 阅读全文
posted @ 2014-04-08 16:56 xingoo 阅读(538) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示