![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程题
文章平均质量分 69
汝南张公子
通信小白努力中!!!
展开
-
用递归实现数组求和
题目:给定一个len长度的数组,用递归的方法求数组和C代码实现:#include #include int getSum(int a[],int len) { if(len == 0) //要考虑空数组的情况 { return 0; } else { int n = len-1; if(n==0) { return a[n原创 2017-04-19 20:36:11 · 8245 阅读 · 1 评论 -
如何用递归算法判断一个数组是否递增
题 目 :如何用递归算法判断一个数组是否递增C实现:#include bool isIncrease(int a[], int len){ int n = len - 1; if(n==0) return 1; else { if(a[n]>=a[n-1]) isIncrease(a,len-1); else return 0; } }原创 2017-04-20 20:46:42 · 1020 阅读 · 0 评论 -
分别用递归和非递归实现二分查找算法
题目:分别用递归和非递归实现有序数组的二分查找算法 1.递归 C代码实现:#include int binarySort(int a[],int start ,int end, int key){ if(a==NULL || end <0) //切记,对于数组,操作之前的第一步一定是判断该数组是否存在 return -1; if(start > end) ret原创 2017-04-21 22:14:40 · 753 阅读 · 0 评论 -
在有序数组中,统计某一元素出现的次数
题目:在排序数组中,找出给定元素出现的次数。例如:有序数组[1,2,3, 4, 5, 5, 5, 5,6,7,8]中,5出现的次数为4次。C程序实现:1.直接比较统计,O(N)的时间复杂度。int findCount(int a[],int len ,int key){ int i,count = 0; for(i=0;i<len;i++) { if(key==a[i]原创 2017-04-25 21:28:15 · 5554 阅读 · 0 评论 -
如何找出数组中重复次数的元素
题目:如何找出数组中重复次数最多的数例:数组{0,2,2,2,2,2,2,3,3,3,4,5,6,7,8}中,出现次数最多的元素为2。方法1:以空间换时间,采用hash表的思想。C实现:#include #define MAX 1024void CountMax(int a[],int len, int b[]){ int count[MAX]={0}; int i, m原创 2017-04-26 23:10:01 · 795 阅读 · 1 评论 -
如何在O(N)的时间复杂度内找出数组中出现次数超过了一半的数
题目:如何在O(N)的时间复杂度内找出数组中出现次数超过了一半的数例:在数组{1,3,3,3,4}中,3即为所求。方法1:建立hash表,key为数组不同的元素,value为出现的次数,找出value大于len/2的值即可,时间复杂度为O(n)。原创 2017-04-27 22:29:16 · 777 阅读 · 0 评论 -
如何实现双向链表的插入、删除操作
如何实现双向链表的插入、删除操作 循环单链表的出现,虽然能够实现从任一结点出发沿着链能找到其前驱结点,但是时间复杂度为O(N)。如果希望能从链表中快速确定某一个结点的前驱,另一个解决方法就是在单链表的每一个结点再增加一个指向其前驱的指针ptr。这样形成的链表中就有两条方向不同的链,被称为双向链表(Double Link List),简称双链表。它是由头指针head唯一确定的。带头结点的双原创 2017-08-20 11:07:44 · 7357 阅读 · 0 评论 -
嵌入式编程
嵌入式编程面试题汇总C语言测试是招聘嵌入式系统程序员必须且有效的方法。嵌入式编程平时系统接触得较少,但像const、volatile、static等关键字其实是经常碰到的,趁此机会在这里总结一番(另外浮点数的表示方式很值得一探究竟,类型转换等均与内存的分配有很大的关联···)。原创 2017-10-11 19:47:24 · 696 阅读 · 0 评论