- 博客(94)
- 收藏
- 关注
原创 基本排序--直接插入排序
1.简单方法 首先在当前有序区R[1..i-1]中查找R[i]的正确插入位置k(1≤k≤i-1);然后将R[k..i-1]中的记录均后移一个位置,腾出k位置上的空间插入R[i]。 注意: 若R[i]的关键字大于等于R[1..i-1]中所有记录的关键字,则R[i]就是插入原位置。2.改进的方法 一种查找比较操作和记录移动操作交替地进行的方法。具体做法:
2012-09-27 21:44:10
321
原创 阶乘(递归方式)
/* 主题:用递归的方法来实现阶乘 开发环境:Visual Studio 开发语言:C*/#include #include unsigned long long fact(int n);int main(void){ int n = 0; puts("请输入数值:"); scanf("%d", &n); printf("%llu\n", fact(n)); ret
2012-09-25 16:16:25
349
原创 队列的链式表示
/* 主题:队列的链式表示 作者:nixindong 开发环境:Visual Studio 开发语言:C*/#include #include #include typedef int ElemType;typedef enum {TRUE = 1, FALSE = 0}boolean;//结点typedef struct QNode{ ElemType data;
2012-09-19 15:51:03
384
原创 带头指针的单链表
/* 主题:带头指针的单链表的基本操作 作者:nixindong 开发环境:Visual Studio 开发语言:C*///头文件#include #include typedef int ElemType;//链表结点typedef struct node{ ElemType data; struct node *pNext;}NODE, *LinkList;
2012-09-18 15:49:04
520
原创 线性表的顺序表示和实现
头文件c.h#pragma once#include #include //函数结果状态代码#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1typedef int Status; //Status是函数的类型,其值是函数结果状态代码,如OK等typed
2012-09-17 21:37:03
328
转载 认识(大端--小端)端模式
转自:http://blog.csdn.net/luckyabcd/article/details/4341873端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大
2012-09-17 12:56:42
555
转载 const和voliate定义同一变量
http://topic.csdn.net/u/20071210/14/321d6ec5-f967-4afb-8d04-b335e6db7b34.html不允许这里修改不代表不允许别处修改,再比如:int i = 5;const int* p = &i;*p = 6; // 不可以;i = 7; // 完全可以,而且那个“const”的“*p”也跟着变成了7。c
2012-09-17 12:34:33
673
原创 查找两个字符串中的公共子串
/* 主题:查找两个字符串中的最大公共子串*/#include#include #include char *commonString(char *str1, char *str2){ int i, j; char *shortStr, *longStr, *subStr; //判断字符串的有效性 if (NULL == str1 || NULL == str2) {
2012-09-14 09:46:30
350
原创 编程实现stcmp函数
#include int myStrCmp(const char *src, const char *dst);int main(void){ char str[10] = "1234567"; char str1[10] = "1234567"; char str2[10] = "12345678"; char str3[10] = "123466"; int test1
2012-09-13 21:28:05
474
原创 字符串是否为回文
/* 主题:判断一个字符串是否是回文*/#include int StrLen(char *str);int IsRevStr(char *str);int main(void){ char str1[] = "*1234321*"; char str2[] = "1234221"; if (IsRevStr(str1)) { puts("str1是回文数");
2012-09-13 20:58:47
475
原创 字符串中各单词的翻转
#include void RevStr(char *src);void swap(char *strDest, char *strSrc);int main(void){ char src[] = "I am from ShangHai"; puts(src); putchar('\n'); RevStr(src); puts(src); return 0;}/
2012-09-13 20:26:33
506
原创 字符串中子串的查找
/* 主题:字符串中子串的查找*/#include #include //循环取src的子串与sub比较const char *strstr(const char*src, const char *sub){ const char *bp; const char *sp; if (src == NULL || sub == NULL) { return src;
2012-09-13 19:47:53
338
原创 更高效的实现字符串的长度检测
#include #include int strLen (const char *strSrc);int main(void){ char p[] = "hello world!"; printf ("strLen len: %d\n", strLen(p)); return 0;}int strLen (const char *strSrc){ assert(s
2012-09-13 16:11:49
276
原创 变成实现memcpy函数
/* 主题:编程实现memcpy函数*/#include #include void *memcpy2(void *memeTo, const void *memFrom, size_t size);int main(void){ char strSrc[] = "Hello World!"; char strDest[20]; memcpy2(strDest, strS
2012-09-13 15:52:10
248
转载 assert()函数用法总结
转自:http://www.cnblogs.com/ggzss/archive/2011/08/18/2145017.htmlassert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression ); assert的作用是现计算表达式 expression
2012-09-13 15:49:38
228
原创 编程实现strcpy函数
/* 主题:实现strcpy函数 已知strcpy函数的原型是: char *strcpy(char *srtDest, char *strSrc);*/#include char *strcpy(char *strDest, const char *strSrc);int getStrLen (const char *strSrc);int main(void){ cha
2012-09-13 15:28:49
640
原创 不使用库函数将字符串转换为数字
/* 主题:实现字符串转换为整数,采用减‘0’再乘10累加的办法*/#include int strToInt(const char *str);int main(void){ int n = 0; char p[10] = ""; scanf("%s", p); n = strToInt(p); printf("%d", n); return 0;}i
2012-09-13 15:02:49
448
转载 深入了解scanf()/getchar()和gets()等函数
----------------------------------------------------| 问题描述一:(分析scanf()和gets()读取字符) |---------------------------------------------------- scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特
2012-09-11 15:23:27
312
原创 回文数的判断
/* 主题:回文数的判断*/#include unsigned int symmetry (unsigned int n);int main (void){ int a = 356563; if (a == symmetry(a)) { puts("是回文数"); } else { puts("不是回文数"); } return 0;}/* 函
2012-09-11 09:50:32
304
原创 将一个字符串中的小写字母改为大写字母
/* 主题:将一个字符串中的小写字母改为大写字母*/#include void big_lower(char *ops);int main(void){ /* 这里的字符串用数组形式来表示,如果用char *p = "hello"这种形式来表示 它是不能被修改的。 */ char src[] = "abcdefghIJKlmnopq"; /* 字符串数组以指
2012-09-11 09:23:22
3715
1
原创 字符串数转换为整数
/* 主题:实现字符串转换为整数,采用减‘0’再乘10累加的办法*/#include int main(void){ int num = 12345, j = 0, i = 0, sum = 0; char temp[7] = {'1', '2', '3', '4', '5', '\0'}; while(temp[i]) { /* 字符串减‘0’就会隐性的转换为i
2012-09-10 21:11:51
344
原创 删除一个字符串中出现次数最少的字符
/** ** ** 题目:删除一个字符串中出现次数最少的字符,函数原型为: ** ** char * delChar(char *s,int iLen) ** ** 其中 s为输入字符串,iLen为输入字符串长度。 ** ** 如输入字符串为“abcdd”,输出为"dd"。 ** **
2012-09-10 18:53:25
87
原创 删除一个字符串中出现次数最少的字符
/** ** ** 题目:删除一个字符串中出现次数最少的字符,函数原型为: ** ** char * delChar(char *s,int iLen) ** ** 其中 s为输入字符串,iLen为输入字符串长度。 ** ** 如输入字符串为“abcdd”,输出为"dd"。 ** **
2012-09-10 18:51:57
3088
原创 对两个字符串是够包含进行比较(轮询方式)
/* 主题:轮询方式对两个字符串是够包含进行比较 作者:nixindong 开发环境:Visual Studio 开发语言:C*/#include #include int StringCompare(char *src1, char *src2);int main (void){ int index; char *s = "ABCDEFGHLMNOPQRS"; c
2012-09-10 15:06:52
381
原创 整数转换为字符串数,并且不使用itoa函数
/* 主题:将整数转换成字符串数,并且不用函数itoa 作者:nixindong 开发环境:Visual Studio 开发语言:C*/#include int main (void){ int num =12345,i=0,j=0, k = 0; char temp[6],str[6]; while(num) { //将整数num从后往前的每一位数转换成char保存
2012-09-10 13:35:39
299
原创 最大子段和
/* 主题:最大子段和 作者:nixindong 邮箱:nixindong@hotmail.com 开发环境:Visual Studio 开发语言:C */ #include int maxSum(int *a, int n);int main (void){ int a[10] = {1, -8, 6, 3, -1
2012-09-06 09:15:50
374
原创 查找----折半查找
折半查找的前提:表中的数据元素必须是有序的。/* 主题:折半查找 作者:karl 邮箱:nixindong@hotmail.com 开发环境:Visual Studio 开发语言:C*/#include int search(int a[], int n, int x);int main(void){ int i, x, pos; int a[10]; pri
2012-06-27 22:00:41
314
原创 查找----顺序查找
/* 主题:顺序查找就是从数据序列中的第一个元素开始逐个查找, 直到找到所要的数据或搜索完整个数据序列。 作者:karl 邮箱:nixindong@hotmail.com 开发环境:Visual Studio 开发语言:C*/#include int search(int a[], int x);int main(void){ int i, x, n; int a
2012-06-27 21:37:14
232
原创 猜数字游戏
游戏说明:电脑随机产生一个数字不重复的四位数。电脑会将您提交的数与它自动产生的数进行比较,结果显示成"*A*B"。A代表位置正确数字也正确,B代表数字正确但位置不正确,比如:"2A2B"表示您有2个数字的位置正确且数值也正确,除此以外,您还猜对了2个数字,但位置不对。程序源码:/* 主题:猜数字游戏 作者:karl 邮箱:nixindong@hotmail.com 开发
2012-06-20 13:47:50
345
原创 阶梯问题
问题:在你面前有一条长长的阶梯,如果每步跨2阶,那么最后剩1阶;如果每步跨3阶,那么最后剩2阶;如果每步跨5阶,那么最后剩4阶;如果每步跨6阶,那么最后剩5阶;只有当每步跨7阶时,最后才正好走完,一阶也不剩。请问这条阶梯有多少阶?(求所有三位阶数)C程序求解:/* 主题:阶梯问题 作者:karl 邮箱:nixindong@hotmail.com 开发环境:Visual St
2012-06-14 15:19:18
449
原创 可逆素数
/* 主题:可逆素数是指将一个素数的各位数字顺序地倒过来, 构成的反序仍然是素数,按以上要求所有的四位素数 作者:karl 邮箱:nixindong@hotmai.com 开发环境:Visual Studio 开发语言:C 日期:2012-06-14*/#include #include typedef enum{TRUE = 1, FALSE = 0}boolean;
2012-06-14 14:58:37
567
原创 亲密数
定义:如果a的因子和等于b,b的因子和等于a,因子包括1但不包括本身,且a不等于b,则称a,b为亲密数对。/* 主题:寻找亲密数对 作者:Karl 邮箱:nixindong@hotmail.com 开发环境:Visual Studio 开发语言:C*/#include int factor(int n);int main(void){ int i, facto
2012-06-13 21:15:00
307
原创 特殊的完全平方数
/* 主题:在3位整数100~999中查找特殊的完全平方数, 这个数既是完全平方数,又有两位数子相同 作者:karl 邮箱:nixindong@hotmail.com 开发环境:Visual Studio 开发语言:C*/#include int main(void){ int i, j; int hun, ten, digits; printf("结果是:")
2012-06-13 20:19:29
449
原创 素数判断
/* 主题:素数判断 作者:karl 邮箱:nixindong@hotmail.com 开发环境:Visual Studio 开发语言:C*/#include #include typedef enum{TRUE = 1, FALSE = 0}boolean;boolean prime(int value);int main(void){ int i; int s
2012-06-13 19:54:22
321
原创 Fibonacci Sequence
斐波纳契数列(Fibonacci Sequence),又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)递归方式程序实现:/* 主题:Fibonacci数列 作者:karl 邮箱:nixindong@hotmail.com 开
2012-06-13 16:13:17
331
原创 rand()、 srand()和time(0)函数
rand()和srand()函数原型是:void srand(unsigned int);int rand(void);标准C库函数中的rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX是stdlib.h中定义的一个整数,它与系统有关。rand()函数没有输入参数,它直接通过rand()来引用,例如可以通过下面的语句来打印两个随机数:prin
2012-06-13 10:12:39
1629
1
原创 基本排序----直接选择排序
1、直接选择排序的基本思想 n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[1..n],有序区为空。 ②第1趟排序 在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。 ……
2012-06-10 16:44:44
243
原创 基本排序----快速排序
快速排序的基本思想:http://sjjp.tjuci.edu.cn/sjjg/DataStructure/DS/web/paixu/paixu8.3.2.1.htm/* 主题:快速排序 作者:karl 邮箱:nixindong@hotmail.com 开发语言:C 开发环境:Microsoft Visual Studio 时间:2012-06-10*/#include
2012-06-10 16:19:05
243
原创 基本排序----冒泡排序
冒泡排序冒泡排序(Bubble Sorting)的基本思想是:设待排序n个元素存放在数组a[n]中,无序区范围初始为(a(0),a(1),a(2),...,a[n-1]),冒泡排序方法是在当前无序区内,从最上面的元素a[0]开始,对每两个相邻的元素a[i+1]和a[i](i=0,1,...,n-1)进行比较,且使值较小的元素换至值较大的元素之上(若a[i]>a[i+1],则a[i]和a[i
2012-06-10 12:59:48
210
原创 基本排序----希尔排序
希尔排序基本思想 基本思想 希尔排序(Shell Sort)又称为“缩小增量排序”。是1959年由D.L.Shell提出来的。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(
2012-06-10 10:48:40
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人