题目内容
(请给出正确答案)
[主观题]
用C++函数编写一个算法,比较两个整数a和b的大小,对于a≥b,a=b,a 这三种不同情况应分别返回“>”,“=”和“<”字符。并求其时间复杂度。
查看答案
如果结果不匹配,请 联系老师 获取答案
用欧几里得算法可以找到两个整数的最大公因子(gcd)。用C语言写一个递归函数,计算两个整数的gcd。用下面的例子来验证你的函数(要输出最后结果):gcd(4,28),gcd(22,4),gcd(22,5),gcd(128,16),gcd(802,800)和gcd(997,19)。
串
实验目的:
(1)掌握串的顺序和链接存储结构的实现方法。
(2)掌握串的模式匹配算法。
(3)掌握和理解本实验中出现的一些基本的C语言语句。
(4)体会算法在程序设计中的重要性。
实验内容:
(1)设计串的模式匹配算法(子串定位)。
(2)若s和t是两个采用顺序结构存储的串,编写一个比较两个串大小的算法,若s>t,则返回1,若s<t,则返回-1,否则返回0。
(1)用cerr<<及exit(1)语句来终止执行并报告错误;
(2)用返回布尔值false,true来实现算法,以区别是正常返回还是错误返[回;
(3)在函数的参数表设置一个引用型的整型变量来区别是正常返回还是某种错误返回。
试讨论这3种方法各自的优缺点,并以你认为是最好的方式实现它。
算法实现的思路为:在有序单链表中插入一个数据元素x,首先要找到该元素应该插入到什么位置,才能保证插入后的单链表仍为有序表。因此,算法的第一步是寻找x的位置:设置指针p、q,最初p指向头结点,q指向头结点的下一个结点,比较q所指数据域的值与x的大小,如果小于x,则p、q分别向后移动一个位置,使p始终作为q的前驱结点,然后重复上面的比较过程;如果比较结果大于x或是比较到最后单链表结束了,则找到了插入位置,在p与q之间插入结点x即可。算法的具体实现如下: