![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础算法
Charles Pao
这个作者很懒,什么都没留下…
展开
-
递归实现二分查找
//在已排序的数组中找到特定元素的数组下标#include <stdio.h>int reccurBinarySearch(int a[],int key,int left,int right);int main(void){ int a[1000],n,key,i; scanf("%d",&n); for(i=0;i<n;i++){ ...原创 2018-02-08 13:09:10 · 883 阅读 · 0 评论 -
单一类型括号配对
问题:一串字符串中只含有一种类型的括号(如()、[]、{}中的一种),判断其中的括号是否能匹配思路:括号不能匹配的情况:左右括号总数不等。从左往右计数,某一时刻右括号个数大于左括号个数。因此对做有括号进行计数C代码实现:#include <stdio.h>int main(void){ char a[100]; i...原创 2018-02-08 19:22:43 · 274 阅读 · 0 评论 -
两数的最大公约数和最小公倍数
最大公约数方法一:辗转相除法思路:欧几里得算法。其证明待学习。(1)非递归实现#include <stdio.h>int main(void){ int a,b,e,r; scanf("%d%d",&a,&b); if(a<b){ e=b; b=a; a=e; } while(a%b!=0){ r=a原创 2017-12-16 20:53:24 · 649 阅读 · 0 评论 -
计算整数位数
方法一:#include <stdio.h>int main(void){ int n,number,len=0; scanf("%d",&number); n=number;//保留原始数据 if(0==n){ len=1; }//对“0”进行特殊处理 else if(n<0){ n=-n; }//若是负数,先原创 2017-12-16 06:38:01 · 2976 阅读 · 0 评论 -
分解数字
方法一:思路:先得到该数字的最高位阶,然后从第一个数字开始分解。#include <stdio.h>int main(void){ int number,n,N; int t=10; scanf("%d",&number); n=number; N=number; while(t<=n){ t=t*10; } t=t/10;原创 2017-12-16 06:30:12 · 2231 阅读 · 0 评论 -
栈实现括号配对
问题:对于一串只含有“(”“)”“{”“}”的字符串,判断字符串中的括号是否匹配C代码实现:#include <stdio.h>#include <stdlib.h>#define MAXSIZE 100//栈结构体typedef struct{ char *stack;//创建字符数组 int top;//创建栈顶}arrra...原创 2018-02-08 14:41:26 · 284 阅读 · 0 评论