概论——习题整理

Posted zhai1997

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了概论——习题整理相关的知识,希望对你有一定的参考价值。

1、数据结构和算法的关系:

(1)数据结构是算法的基础

(2)算法的操作对象是数据结构,在设计算法的时候要构建合适这种算法的数据结构

(3)数据结构设计主要是选择数据的存储方式(数组或链表),算法设计是在选定的数据结构上设计一个满足要求的好的算法

(4)数据结构关注的是数据的逻辑结构、存储结构、基本操作,而算法关注的是如何在数据结构的基础上解决实际问题

2、什么是算法

算法是求解问题的一系列步骤,用来将输入的数据转换为输出结果。

3、算法的重要特性:

(1)有限性:执行有限步之后结束。

(2)确定性:每一条指令无二义性。

(3)可行性:每一条运算都能精确地执行。

(4)输入性:一个算法有零个或多个输入。

(5)输出性:一个算法有一个或多个输入。

4、证明以下关系成立:

(1)

技术图片

 (2)

技术图片

 要证明关系成立,即,需要找出三个正常量c1,c2和n0,使得当n>=n0的时候,满足c1(n的平方)<=式子<=c2(n的平方)

技术图片

 

 

 5、

技术图片

 

 

技术图片

 

 

 6、

技术图片

 技术图片

 

 7、【ACM调练题】3n+1问题:从整数n开始如果n为偶数,把它除以2;如果n为奇数,把它乘3加1,用新得到的值重复上述步骤,直到n=1时停止。例如n=22时得到同序列是22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1.对于任意整数n,该算法总能终止于n=1,这个猜测对于至少1000000内的整数都是正确的。对于给定的m,该序列的元素(包括1)个数称为n的循环节长度。请计算  i   到   j(包含 i 和  j )之间的整数中,循环节长度的最大值。

输人:每行包含两个整数  i  和 j 。所有整效大于0,小于1 000 000
给出:对于每对整数  i  和 j,按原来的顺序输出 i 和 j,然后输出两者之间的整数中的最大循环节长度,它们之间用单个空格分隔,且在同一行输出。对于读入的每一组数据,在输
中应位于单独的一行。
输入样本:
1 10

100  200

201  210

900   1000输出结果:
1  10  20

100  200  125

201  210  89

900 1000  174

核心代码(求长度):

int cycle(int i,int j){
    int k,count=0,maxc=0;
    for(k=i;k<=j;k++){//两个数之间的数字依次判断比较 
        while(k!=1){
            if(k%2==0)//偶 数 
            k=k/2;
            
            else//奇数 
            k=3*k+1;
            count++;
        }
        if(maxc!=0)//count大于 0 
        maxc=count;
    }
    return maxc;
}

以上是关于概论——习题整理的主要内容,如果未能解决你的问题,请参考以下文章

现代软件工程 第一章概论习题第1题 李艳薇

马克思主义基本原理概论》学生辅学读本(第四版)习题答案

软件工程概论习题

数据库系统概论第五版课后习题答案(王珊)

数据库系统概论第5版习题解析与实验指导答案王珊张俊

算法概论课后习题8.8