学习
laibinghua
这个作者很懒,什么都没留下…
展开
-
快速排序法程序
<br />快速排序法程序<br />//快速排序法<br />#include <iostream><br />#include <iomanip><br />#include <ctime><br />#include <cstdlib><br />using namespace std;<br />void inputarr(int*,int);<br />void showdata(int*,int);<br />void quick(int*,int,int,int);<br />int proc原创 2010-09-25 10:50:00 · 538 阅读 · 0 评论 -
位域
<br />位域:<br />有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。一、位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为:<br />st原创 2010-09-25 17:29:00 · 594 阅读 · 0 评论 -
计算阶乘n!末尾所含0的个数
color=Orange]问题描述[/color] 给定参数n(n为正整数),请计算n的阶乘n!末尾所含有“0”的个数。 例如,5!=120,其末尾所含有的“0”的个数为1;10!= 3628800,其末尾所含有的“0”的个数为2;20!= 2432902008176640000,其末尾所含有的“0”的个数为4。 [color=Orange]计算公式[/color] 这里先给出其计算公式,后面给出推导过程。 令f(x)表示正整数x末尾所含有的“0”的个数,则有:原创 2010-09-25 21:45:00 · 1078 阅读 · 0 评论 -
找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad"
<br />#include <iostream.h><br />#include <string><br />int GetCommon(char *s1, char *s2, char **r1, char **r2) <br />{ <br />int len1 = strlen(s1); <br />int len2 = strlen(s2); <br />int maxlen = 0; <br /> <br />for(int i = 0; i < len1; i++) <br />{ <br /原创 2010-09-26 09:12:00 · 1638 阅读 · 0 评论 -
外部合并法
<br />外部合并排序法<br />//对于数据量很大的或是文件太大的需要进行排序的可用直接合并排序法(适用于顺序存取文件)<br />#include <fstream><br />#include <iostream><br />#include <cstdlib><br />#include <iomanip><br />using namespace std;<br />void merge(ofstream& fp,ifstream& fp1,ifstream& fp2)<br />{<br /原创 2010-09-25 10:59:00 · 723 阅读 · 0 评论 -
编写算法,从10亿个浮点数当中,选出其中最大的10000个
<br />编写算法,从10亿个浮点数当中,选出其中最大的10000个。<br />用外部排序,在《数据结构》书上有<br />《计算方法导论》在找到第n大的数的算法上加工(注意:先将数据进行分割成数据量小的一些文件,如1000000个数据为一个文件,然后将每个文件数据进行排序,用快速排序法排序,然后使用K路合并法将其合并到一个文件下,取出排序好的最大的10000个数据)<br />另解:(1)读一次所有数据,得出最大和最小。(2)用最大和最小,分100个区间dx = (x_max - x_min) / 1原创 2010-09-25 11:09:00 · 6057 阅读 · 1 评论 -
把十进制数(long型)分别以二进制和十六进制形式输出,不使用printf系列库函数
<br />//十六进制的输出<br />char* test3(long num) { <br />char* buffer = (char*)malloc(11); <br />buffer[0] = '0'; <br />buffer[1] = 'x'; <br />buffer[10] = '/0'; <br /><br />char* temp = buffer + 2; <br />for (int i=0; i < 8; i++) { <br />temp[i] = (char)(num<<4原创 2010-09-26 09:11:00 · 2280 阅读 · 0 评论