![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 53
nixindong1984
这个作者很懒,什么都没留下…
展开
-
特殊的完全平方数
/* 主题:在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 · 454 阅读 · 0 评论 -
阶梯问题
问题:在你面前有一条长长的阶梯,如果每步跨2阶,那么最后剩1阶;如果每步跨3阶,那么最后剩2阶;如果每步跨5阶,那么最后剩4阶;如果每步跨6阶,那么最后剩5阶;只有当每步跨7阶时,最后才正好走完,一阶也不剩。请问这条阶梯有多少阶?(求所有三位阶数)C程序求解:/* 主题:阶梯问题 作者:karl 邮箱:nixindong@hotmail.com 开发环境:Visual St原创 2012-06-14 15:19:18 · 452 阅读 · 0 评论 -
可逆素数
/* 主题:可逆素数是指将一个素数的各位数字顺序地倒过来, 构成的反序仍然是素数,按以上要求所有的四位素数 作者: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 · 570 阅读 · 0 评论 -
猜数字游戏
游戏说明:电脑随机产生一个数字不重复的四位数。电脑会将您提交的数与它自动产生的数进行比较,结果显示成"*A*B"。A代表位置正确数字也正确,B代表数字正确但位置不正确,比如:"2A2B"表示您有2个数字的位置正确且数值也正确,除此以外,您还猜对了2个数字,但位置不对。程序源码:/* 主题:猜数字游戏 作者:karl 邮箱:nixindong@hotmail.com 开发原创 2012-06-20 13:47:50 · 347 阅读 · 0 评论 -
查找----顺序查找
/* 主题:顺序查找就是从数据序列中的第一个元素开始逐个查找, 直到找到所要的数据或搜索完整个数据序列。 作者: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 · 233 阅读 · 0 评论 -
查找----折半查找
折半查找的前提:表中的数据元素必须是有序的。/* 主题:折半查找 作者: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 · 316 阅读 · 0 评论 -
最大子段和
/* 主题:最大子段和 作者: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 · 376 阅读 · 0 评论 -
基本排序----插入排序
今天开始学习《算法导论》这本书。第一个内容就是插入排序(Insertion-sort)。 下面是源代码(C语言):/*这个程序是演示插入排序算法的将数组元素按非降序排列*/#include //函数声明void InsertSort(int array[], unsigned int n);int main(void){ int arr[6]={5, 2, 4,原创 2012-03-01 10:40:57 · 96 阅读 · 0 评论 -
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 · 333 阅读 · 0 评论 -
亲密数
定义:如果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 · 310 阅读 · 0 评论 -
素数判断
/* 主题:素数判断 作者: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 · 325 阅读 · 0 评论 -
直接选择排序的节本思想和算法
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-03-11 23:32:25 · 199 阅读 · 0 评论 -
Binary-Search
折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。【基本思想】将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如果xa[n/2],则我们只要在数组a的右半部继续搜索x。源代码:#include static int Binary_原创 2012-03-16 09:16:55 · 167 阅读 · 0 评论 -
将插入排序的顺序查找改为二分查找的算法
伪代码:转载 2012-03-16 09:26:09 · 251 阅读 · 0 评论 -
Uva Problem 100 3n+1 Problem
Consider the following algorithm to generate a sequence of numbers. Start with an integer n. If n is even, divide by 2. If n is odd, multiply by 3 and add 1. Repeat this process with the new value of原创 2012-06-07 16:45:26 · 578 阅读 · 0 评论 -
Uva Problem 10189 Minesweeper Problem
Have you ever played Minesweeper? This cute little game comes with a certain operating system whose name we can’t remember. The goal of the game is to find where all the mines are located within a M ×原创 2012-06-08 22:17:28 · 262 阅读 · 0 评论 -
基本排序----冒泡排序
冒泡排序冒泡排序(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 · 214 阅读 · 0 评论 -
基本排序----希尔排序
希尔排序基本思想 基本思想 希尔排序(Shell Sort)又称为“缩小增量排序”。是1959年由D.L.Shell提出来的。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(原创 2012-06-10 10:48:40 · 224 阅读 · 0 评论 -
基本排序----快速排序
快速排序的基本思想: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 · 244 阅读 · 0 评论 -
基本排序----冒泡排序
交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。 1、排序方法 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就原创 2012-03-26 14:48:46 · 70 阅读 · 0 评论 -
基本排序----直接选择排序
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 · 244 阅读 · 0 评论 -
阶乘(递归方式)
/* 主题:用递归的方法来实现阶乘 开发环境: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 · 352 阅读 · 0 评论