ZT Shell 排序
摘要:Shell 排序 分类: 算法 C 2008-09-17 11:02 1898人阅读 评论(4) 收藏 举报shell语言c 刚才在CSDN的C语言板块看到了有人说Shell排序的问题,所以一起学习了一下,并进行如下总结shell排序的思想是根据步长由长到短分组,进行排序,直到步长为1为止,属于插入排序的一种。下面用个例子更好的理解一下无序数列: 32, 43,56,99,34,8,54,761.首先设定gap=n/2=4于是分组32,34 排序 32,3443, 8 8, 4356,54 54,5699,76 76,99数列变成 32,8,54,76,34,43,56,992.gap...
阅读全文
posted @
2014-02-20 14:31
jeans chen
阅读(199)
推荐(0)
ZT 类模板Stack的实现 by vector
摘要:*//*第3章 类模板与函数相似,类也可以被一种或多种类型参数化。容器类就是一个具有这种特性的典型例子,它通常被用于管理某种特定类型的元素。只要使用类模板,你就可以实现容器类,而不需要确定容器中元素的类型。在这一章中,我们使用Stack作为类模板的例子。3.1 类模板Stack的实现与函数模板的处理方式一样,我们在同一个头文件中声明和定义类Stack(我们将在6.3小节讨论如何把声明和定义放在不同的文件中),如下://basics/stack1.hpp#include #include template class Stack {private: std::vector elems; ...
阅读全文
posted @
2014-02-17 11:09
jeans chen
阅读(305)
推荐(0)
ZT 输入一个字符串,查找它的第一个数字串,并返回其个数
摘要:/*查找字符串中的数字串问题 输入一个字符串,查找它的第一个数字串,并返回其个数*/#include char firstnum(char *input,char *output){ char *in=input,*out=output,*temp; int count=0,i; while(*in !='\0') { if(*in>='0'&&*in='0'&&*in='a' && *in='A' && *in<='Z')
阅读全文
posted @
2014-02-17 10:35
jeans chen
阅读(353)
推荐(0)
ZT 查找字符串中连续最长的数字串
摘要:查找字符串中连续最长的数字串有俩方法,1)比较好理解一些。2)晦涩1)/*功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789*/#include int Findmaxlen(char *input,char *output);void main(){ char input[]="abc123def123456ee123456789dd&
阅读全文
posted @
2014-02-15 15:25
jeans chen
阅读(362)
推荐(0)
ZT CSDN 如何以最快的速度计算出一个二进制数中1的个数? [
摘要:一道算法面试题:如何以最快的速度计算出一个二进制数中1的个数? [问题点数:10分,结帖人weicai_chen] 收藏 weicai_chenweicai_chen等级:结帖率:95.12% 楼主 发表于: 2007-06-26 22:51:44 如何以最快的速度计算出一个二进制数中1的个数?假设这个二进制数位数可以很长,比如有100位以上或更多。。。大家说说自己的想法。 更多 0 分享到: 相关主题推荐: 二进制 面试题 算法 ...
阅读全文
posted @
2014-02-15 15:19
jeans chen
阅读(293)
推荐(0)
ZT 计算一个无符整数中1Bit的个数(1) 2010-04-20 10:52:48
摘要:计算一个无符整数中1Bit的个数(1) 2010-04-20 10:52:48分类: C/C++[转]计算一个无符整数中1Bit的个数(1)Count the number of bits that are on in an unsigned integer(计算一个无符整数中1Bit的个数)-- (1)计算一个无符号整数中有多少的Bit为1这是一个经常遇到的经典问题,这里分两个部分讲解和总结,首先对讲解现有的算法,然后再讲解一些改进算法。1.循环法(Iterated Count)int bitcount (unsigned int n){int count=0; while (n) {...
阅读全文
posted @
2014-02-15 15:18
jeans chen
阅读(301)
推荐(0)
ZT 二叉树的非递归遍历
摘要:ZT 二叉树的非递归遍历 二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就 是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历 中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.前序遍历 前序遍历按照“根结点-左孩子-右孩子”的顺序进行访问。 1.递归实现void preOrder1(BinTree *root) //递归前序遍历 { i...
阅读全文
posted @
2014-02-10 16:08
jeans chen
阅读(210)
推荐(0)
转贴:C语言链表基本操作
摘要:http://www.oschina.net/code/snippet_252667_27314#comments这个代码有很多错误,估计是从老谭书上抄来但是很多还抄错了:对照老谭的书好好研究下。切记!p2是p1的跟屁虫!切记#include"stdio.h"#include"malloc.h"struct stu{ int num;//这个是学号 float score;//这个是分数 struct stu *next;};struct stu*create(){ int n;//这个n这里不大合适 ,最好弄个全局的 struct stu *head,
阅读全文
posted @
2014-02-10 13:00
jeans chen
阅读(224)
推荐(0)
硬盘上的一些算法小题目||and今天看了下林锐的书以及gdb调试 及一些变成算法小题目
摘要:gdb调试:观察点,断点,事件捕捉点。step 进入函数,next 跳过函数,until 跳出循环,finish 结束函数林锐:书后试题 & c++的对象模型图看了二叉树的非递归遍历,链表的操作,ZT 设计模式六大原则(1):单一职责原则ZT 设计模式六大原则(2):里氏替换原则所有引用基类的地方必须能透明地使用其子类的对象/*递归求一个数组的和 (2010-04-11 15:34:25)转载▼标签: 杂谈 分类: C—Programming*/int sum(int a[],int n){ if(n>=1) return a[n-1]+sum(a,n-1); else retu
阅读全文
posted @
2014-02-07 17:18
jeans chen
阅读(375)
推荐(0)
ZT 链表逆序
摘要:链表逆序原帖地址http://blog.csdn.net/niuer09/article/details/5961004分类:C/C++2010-10-23 17:2318425人阅读评论(22)收藏举报listnullstruct测试设链表节点为[cpp]view plaincopytypedefstructtagListNode{intdata;structtagListNode*next;}ListNode,*List;要求将一带链表头List head的单向链表逆序。分析: 1). 若链表为空或只有一个元素,则直接返回;2). 设置两个前后相邻的指针p,q. 将p所指向的节点作为q指向
阅读全文
posted @
2014-02-06 19:38
jeans chen
阅读(305)
推荐(0)
ZT 二分插入排序也称折半插入排序
摘要:二分插入排序也称折半插入排序,基本思想是:设数列[0....n]分为两部分一部分是[0...i]为有序序列,另一部分是[i+1.....n]为无序序列,从无序序列中取一个数 x ,利用二分查找算法找到 x 在有序序列中的插入位置并插入,有序序列还是有序的,接下来重复上述步骤,直到无序序列全部插入有序序列 ,这是整个序列只剩下有序序列即有序了。01voidBinaryInsertSort(int*pArray,intlen)02{03//刚开始设有序序列只有一个元素 pArray[0],无序序列为[1...n]了04for(inti = 1; i = pArray[i - 1])08{09con
阅读全文
posted @
2014-02-06 17:22
jeans chen
阅读(910)
推荐(0)
C++ new和delete重载
摘要:C++ new和delete重载2012-02-15 23:25:33|分类:C/C++|举报|字号订阅 首先,new和delete是运算符,重载new和delete是可能的。这样做的原因是,有时希望使用某种特殊的动态内存分配方法。例如,可能有些分配子程序,他们的堆已耗尽,自动开始把一个磁盘文件当虚存储使用,或者用户希望控制某一片存储空间的分配等。重载new和delete的格式如下:void *operator new (size_t size){ .......//完成分配工作 return pointer_to_memory;}void operator delete(void *p){
阅读全文
posted @
2014-02-06 15:32
jeans chen
阅读(563)
推荐(0)
ZT 9种排序
摘要:9种排序2012-09-19 14:5866人阅读评论(0)收藏编辑删除algorithmfpfilemergeintegerfloat[cpp]view plaincopy#include#include#include#includevoidSwap(float&x,float&y){x=x+y;y=x-y;x=x-y;}voidPrintData(int*pDataArray,intiDataNum){for(inti=0;i=0&&pDataArray[j]>temp)//从后向前,找到比其小的数的位置{pDataArray[j+d]=pDataA
阅读全文
posted @
2014-02-06 15:25
jeans chen
阅读(316)
推荐(0)
ZT C语言链表操作(新增单向链表的逆序建立)
摘要:这个不好懂,不如看 转贴:C语言链表基本操作http://www.cnblogs.com/jeanschen/p/3542668.htmlZT 链表逆序http://www.cnblogs.com/jeanschen/p/3538966.htmlC语言链表操作(新增单向链表的逆序建立)分类:C/C++2011-09-17 22:051017人阅读评论(0)收藏举报语言cnullinsertsearchstruct众所周知,链表是数据结构的基础,掌握链表很重要http://blog.csdn.net/liushuaikobe/article/details/6785964![cpp]view p
阅读全文
posted @
2014-02-06 15:19
jeans chen
阅读(264)
推荐(0)
ZT 二叉树先序,中序,后序遍历非递归实现
摘要:二叉树先序,中序,后序遍历非递归实现分类:数据结构及算法2012-04-28 14:308572人阅读评论(6)收藏举报structc利用栈实现二叉树的先序,中序,后序遍历的非递归操作[cpp]view plaincopy#include#include#include#include#include#includeusingnamespacestd;typedefstructBiTNode{chardata;BiTNode*lchild,*rchild;}BiTNode,*BiTree;voidCreateBiTree(BiTree&T)//建树,按先序顺序输入节点{charch;s
阅读全文
posted @
2014-02-06 15:01
jeans chen
阅读(182)
推荐(0)
二叉树的遍历(一)
摘要:根据访问结点操作发生位置命名:① NLR:前序遍历(PreorderTraversal亦称(先序遍历))——访问根结点的操作发生在遍历其左右子树之前。② LNR:中序遍历(InorderTraversal)——访问根结点的操作发生在遍历其左右子树之中(间)。③ LRN:后序遍历(PostorderTraversal)——访问根结点的操作发生在遍历其左右子树之后。注意:由于被访问的结点必是某子树的根,所以N(Node)、L(Left subtree)和R(Right subtree)又可解释为根、根的左子树和根的右子树。NLR、LNR和LRN分别又称为先根遍历、中根遍历和后根遍历。用二叉链表做为
阅读全文
posted @
2014-02-06 14:47
jeans chen
阅读(296)
推荐(0)
Z :彻底了解指针数组,数组指针以及函数指针 [复
摘要:原创 :彻底了解指针数组,数组指针以及函数指针[复制链接]00roking白手起家帖子60主题16精华0可用积分74专家积分0在线时间0 小时注册时间2003-10-07最后登录2004-12-06问答好友博客消息论坛徽章:0电梯直达1楼[收藏(0)][报告]发表于 2004-07-30 19:23:41|只看该作者|倒序浏览小弟是一个软件工程师,做unix c/c++ java的开发,每次碰到问题都跑到CU里问人,呵呵,昨天在碰到一个指针数组的问题的时候,由于好久没用,感觉有些陌生了,所以今天归纳总结了一下,希望以后的朋友可以少走些弯路,也不知道对大家有没有用处:)一 :关于指针和堆的内存分
阅读全文
posted @
2014-02-06 13:14
jeans chen
阅读(263)
推荐(0)
ZT 复杂的函数指针例子分析 2008
摘要:复杂的函数指针例子分析2008-01-26 11:38:22分类:一个最简单的函数指针定义如下:Void (*funcPtr) (); //funcptr是一个函数指针,它指向的函数没有参数,返回值为void非常复杂的函数指针定义:1.Void * (*( * fp1)(int))[10];解析:Void * X[10];è这是一个有10个void*类型的元素的数组。X=*( * fp1)(int),从而可以看出(*fp1)(int)它是一个指针,指向一个数组。这个数组有10个void指针类型的元素。Fp1是一个函数指针,它的参数是一个int型的参数。返回值为一个指向含有10个voi
阅读全文
posted @
2014-02-06 13:13
jeans chen
阅读(194)
推荐(0)
D:\hunting2014\小题目\字符串倒序
摘要:#include#includechar *revert(char *str){char temp;char *p = str;char *q = str;int strlong = 0;int i;strlong = strlen(str);q+= (strlong - 1);for(i = 0; i <= strlong/2; i++){temp = *q;*q = *p;*p = temp;p++;q--;}return str;}main(){char str[] = "abcdefghijklmnopqrstuvwxyz";revert(str);print
阅读全文
posted @
2014-02-06 12:28
jeans chen
阅读(156)
推荐(0)
ZT C语言实现字符串倒序
摘要:http://blog.chinaunix.net/uid-20788517-id-34777.html分类:C/C++ 1#include2#include3#include45intmain()6{7char*src="abcdefghijk";8intlen=strlen(src);9char*dest=(char*)malloc(len+1);1011char*a=&src[len-1];12char*b=dest;1314while(len--!=0)15*b++=*a--;16printf("%s\n",dest);17free(de
阅读全文
posted @
2014-02-06 12:27
jeans chen
阅读(198)
推荐(0)