算法和数据结构
文章平均质量分 70
ammana_babi
这个作者很懒,什么都没留下…
展开
-
m表示为一些不超过n的自然数之和
/*设m,n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目。例:f(5,3)=5,有五种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1*/int f(m,n) int m,n;{ if(m==1)return 1; if(n==1)return 1; if(m if(m==n)return 1+f(m,n-1); return f(m原创 2005-12-04 12:01:00 · 2585 阅读 · 0 评论 -
农历一百年算法(1921~2021)【C语言代码】
有关农历的东西有以下几篇文章: 计算某天是星期几【C代码】 农历算法简介以及公式 农历中天干地支的计算【C代码】 农历一百年算法(1921~2021)【C语言代码】 农历两百年算法(1901~2100)【C语言代码】 /* 下面是网上一个非常流行的计算农历的算法和C代码。但是,它只能计算 1921年 到 2021年的农历,仅仅只有一百年。稍后,我将会帖出二百年算法。转载 2006-11-10 23:36:00 · 4290 阅读 · 0 评论 -
按位反转
下面的代码写的太罗嗦了,请参考 对一个整数按位反转void Fan1(){ unsigned int Number; unsigned int Temp1,Temp2,Temp3; int i = 31; Temp1 = 0xaaaaaaaa; Temp2 = 1; Temp3 = 0; Number = 0; printf("Number = 0x%x/原创 2006-07-13 16:07:00 · 1851 阅读 · 1 评论 -
去除数组中的重复数字
题目: 有一个数组t[100],存放了1~99之间的数字,用效率较高的代码把重复数字去掉。例如数组{1,2,2,2,3,5,6,6}变成{1,2,3,5,6}。因为是高效率,我们可以采用空间换时间的策略来解决。下面是完整的源代码:void RemoveRep(){ int t[100],tTemp[100]; int i,j; srand((unsigned)(time(NULL)))原创 2006-07-18 12:21:00 · 1127 阅读 · 0 评论 -
不使用大于、小于逻辑判断来得到两个数的大小
题目: 不使用大于、小于逻辑判断来得到两个数的大小这个问题有很多种解法,下面仅仅举出其中两种:方法一:{int a=-86,b=22; int max=((a+b)+abs(a-b))/2; printf("max=%d/n",max);}程序分析:max=((a+b)+abs(a-b))/2;if(a>b) abs(a-b)=a-b; max=a+b+a-b/2=a;if原创 2006-07-18 12:30:00 · 1785 阅读 · 0 评论 -
将整数转换成字符串
请编写一个 C 函数,该函数将给定的一个整数转换成字符串。【本程序在Dev C++ 4.9.9.2 下编译通过】 下面的这个算法比较傻,垃圾的很,显示了一个C语言新手所应有的水平。而且处理不完全,算法考虑不周到,代码过于啰嗦,不够简洁,紧接着这个后面会有一个较为简洁、完全的代码。char * IntToStr(int Number){ char ch,*str,原创 2006-07-18 17:36:00 · 18605 阅读 · 13 评论 -
在101个数字中查找重复数字
题目:有101个数字,每个数字的值均介于0~99之间。这101个数字中只有两个数字是重复的,请你找出来重复的数字和相应的位置。随机产生数组:int i,j,Number[101],Temp[101]; int left=0,right=0; srand((unsigned)(time(NULL))); for(i=0;i { Number[i] = 9999; Temp[i] = 99原创 2006-07-13 10:51:00 · 2044 阅读 · 0 评论 -
最大公约数的求解
方法一: int GYS(int m,int n){ int r,t; if(m { t = m; m = n; n = t; } while( 1) { r = m % n; if(r == 0) return n; m = n; n = r; }}//这是最常见的一种解法。方法二:int GYS(int m,int n){ int t; if(m {原创 2006-07-19 09:11:00 · 1221 阅读 · 0 评论 -
文件的逆序存储
#include "stdio.h"#include "io.h"#include "fcntl.h "void Flip(){ char Buffer[1024],Temp; int i; int nReadLength,nRead; int nLoop,nArrLen; long nFileLength,SeekOffSet; int handle; FILE * SourceFile,原创 2006-07-13 15:46:00 · 1183 阅读 · 0 评论 -
数字字符串转换成整数
题目: 请编写一个 C 函数,该函数将给定的一个字符串转换成整数。【本程序在Dev C++ 4.9.9.2 下编译通过】下面的程序仅仅是考虑十进制字符串。int StrToInt(char * str){ int value = 0; int sign = 1; if(*str == -) { sign = -1;原创 2006-07-18 16:57:00 · 3023 阅读 · 1 评论 -
最大的相同字符子串
请编写一个 C 函数,该函数在一个字符串中找到可能最长子字符串,该字符串是由同一字符组成的。【感谢网友的指正,让俺能及时发现自己考虑问题的不当之处。】下面是完整源代码:【经网友指正,这是一种错误的算法,后面将会帖出修改后的程序。】 void StrSame(char * ch){ int TempCH[26]; int i,MaxLen =1,local原创 2006-07-18 22:01:00 · 1423 阅读 · 3 评论 -
一个字节中的1的个数
编写一个 C 函数,该函数给出一个字节中被置 1 的位的个数,并请给出该题至少一个不同解法。void oneofchar(){ unsigned char ch = 0x77; unsigned char temp = 1; int i,j=0; for(i = 0;i { if((ch & temp) != 0) j++; temp = temp } printf("0x%x/n原创 2006-07-18 16:31:00 · 1997 阅读 · 1 评论 -
字符串逆序
题目:请编写一个 C 函数,该函数将一个字符串逆序。char * StrReverse(char * ch){ char tempch,* tch; int Len,i; tch = ch; printf("/n"); Len = strlen(ch); printf("Len = %d/n",Len); for(i=0;i { tempch = *tch; *tch = *(tch +原创 2006-07-18 21:29:00 · 1755 阅读 · 2 评论 -
游戏引擎大全
游戏引擎大全 1. Codecreatures http://www.codecult.com 2. Ogre (free) http://ogre.sourceforge.net/ 3. Serious Engine http://www.croteam.com/engine_features.shtml 4. Jet 3D (free) http://www.jet3d.com/转载 2006-11-15 13:54:00 · 1422 阅读 · 0 评论 -
农历两百年算法(1901~2100)【C语言代码】
【本程序在DEV C++ 4.9.9.2 下编译通过】有关农历的东西有以下几篇文章: 计算某天是星期几【C代码】 农历算法简介以及公式 农历中天干地支的计算【C代码】 农历一百年算法(1921~2021)【C语言代码】 农历两百年算法(1901~2100)【C语言代码】原创 2006-11-11 00:36:00 · 9031 阅读 · 7 评论 -
网络上的一些代码资源
http://search.csdn.net/CSDN搜索,CSDN还是有非常多的编程资源的,用它的搜索能搜出不少东西。代码类别也比较全面。 http://snippets.org/简单实用的代码收集网站,强力推荐。比如你要找个DES加密,要找个数据压缩,找个INI文件操作的C代码等,均能手到擒来。 http://www.codase.com/index.html它是一转载 2006-09-12 12:29:00 · 1506 阅读 · 0 评论 -
MD5算法的C代码实现及测试
本程序主要是通过 rfc1321.txt 整理而来。这个文件可以在下面的地址下载。 http://www.ietf.org/rfc/rfc1321.txt 本程序在VC 2003 .NET 和 Dev C++ 4.9 下编译通过。 #include typedef struct { unsigned int state[4]; unsi原创 2006-09-18 10:49:00 · 10086 阅读 · 0 评论 -
初识MD5算法
MD5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的转载 2006-09-14 13:55:00 · 1632 阅读 · 0 评论 -
百度的一道面试题(关于Cache的)
某型CPU的一级数据缓存大小为16K字节,cache块大小为64字节;二级缓存大小为256K字节,cache块大小为4K字节,采用二路组相联。经测试,下面两段代码运行时效率差别很大,请分析哪段代码更好,以及可能的原因。 为了进一步提高效率,你还可以采取什么办法? A段代码:int matrix[1023][15]; const char *str = "this is a str"原创 2006-09-20 17:22:00 · 4919 阅读 · 8 评论 -
11个中最大的10个数字
有一个10个数nA[10]的有序数组(从小到大),来了第11个数nNum,得出11个中最大的10个数字(排序方式(从小到大)不变),要求比较次数越少越好!这是采用折半查找算法的程序当要插入的数字小于第一个或者与有数字相等的时候,就不做插入工作。 void FindNumber(){ int i,j,Number[10],temp; int l原创 2006-09-21 12:06:00 · 1563 阅读 · 0 评论 -
Google 的一道面试题的解法
Google 的一道面试题的解法Consider a function which, for a given whole number n, returns the number of ones required when writing out all numbers between 0 and n. For example, f(13)=6. Notice that f(1)=1. W原创 2006-11-02 16:33:00 · 1498 阅读 · 2 评论 -
判断32位整数二进制中1的个数的算法
今天在CU上看到了关于 “判断32位整数二进制中1的个数的算法” 的问题。因为马上就要下班,没有时间再研究了。只好先把论坛中帖子的地址拷贝下来了。学习ing....http://dev.bibts.com/32-1-t936968.htmhttp://www.chinaunix.net/jh/23/795048.html在下面的英文网址中,对这个问题有详细的介绍:http://www.everyt原创 2006-10-30 14:04:00 · 3230 阅读 · 4 评论 -
软件开发技术名词的解密篇【转贴】
软件开发技术名词的解密篇【转贴】"Win32编程” 很不幸,我从开始学习编程到理解这个名词中间隔了很长的时间(上个世纪的学习环境可见一斑)。很长时间里我都不明白32是指什么,我用过Dos, Win31,win95,win97...但好像没用过名为Win32的操作系统啊?很久以后我才知道,32在这里并不是指操作系统的版本号,而是指32 位。微软操作系统在win31及其以前都是DOS系统,w转载 2006-11-09 10:44:00 · 1162 阅读 · 0 评论 -
修炼一名程序员的职业水准【转贴】(林庆忠__署名原创)
修炼一名程序员的职业水准【转贴】(林庆忠__署名原创)作者:林庆忠,1990年毕业于昆明工学院计算机软件专业,后又于1999年毕业在南京大学 完成软件工程专业硕士的学习,现供职于CNPC旗下的一个行业软件研发中心,因为在网上看了许多有经验的各路软件开发人员写的好帖,一时手痒兴起,也凑一篇壮壮声势。 假设你是一名软件专业毕业的本科学子,如何在工作中修炼成为一名有较高职业水准的程序员呢,本文试转载 2006-11-09 10:50:00 · 1798 阅读 · 3 评论 -
计算某天是星期几【C代码】
【本程序在DEV C++ 4.9.9.2 下编译通过】有关农历的东西有以下几篇文章: 计算某天是星期几【C代码】 农历算法简介以及公式 农历中天干地支的计算【C代码】 农历一百年算法(1921~2021)【C语言代码】 农历两百年算法(1901~2100)【C语言代码】 #include /*函数名称:int GetWeekDay(int year,in原创 2006-11-09 14:25:00 · 5829 阅读 · 1 评论 -
农历算法简介以及公式
农历算法简介以及公式有关农历的东西有以下几篇文章: 计算某天是星期几【C代码】 农历算法简介以及公式 农历中天干地支的计算【C代码】 农历一百年算法(1921~2021)【C语言代码】 农历两百年算法(1901~2100)【C语言代码】 一、节气的计算 先给节气进行编号,从近日点开始的第一个节气编为0,编号如下及其相应的月份如下:转载 2006-11-09 15:12:00 · 10427 阅读 · 1 评论 -
农历中天干地支的计算【C代码】
【本程序在DEV C++ 4.9.9.2 下编译通过】有关农历的东西有以下几篇文章: 计算某天是星期几【C代码】 农历算法简介以及公式 农历中天干地支的计算【C代码】 农历一百年算法(1921~2021)【C语言代码】 农历两百年算法(1901~2100)【C语言代码】 unsigned int LunarCalendarTable[199] = { 0x04AE5原创 2006-11-09 16:30:00 · 5647 阅读 · 1 评论 -
对一个整数按位反转
记得在以前也是写过一个按位反转(Reversing Bits)的文章,代码都是自己的,写的傻乎乎的。 这次重新对它进行了书写。再加上由于看了 Henry S. Warren 的 《Hackers Delight》一书中的有关 Reversing Bits 的相关介绍,所以写了这篇笔记。 unsigned int ReverseBitsInWord00(unsigned int Num)原创 2007-06-07 10:27:00 · 4718 阅读 · 0 评论