码迷,mamicode.com
首页 > 其他好文 > 详细

概论——习题整理

时间:2019-12-14 19:24:32      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:整理   png   else   长度   ++   技术   顺序   存储   多个   

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;
}

概论——习题整理

标签:整理   png   else   长度   ++   技术   顺序   存储   多个   

原文地址:https://www.cnblogs.com/zhai1997/p/12036803.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!