• 概论——习题整理


    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;
    }
  • 相关阅读:
    Jersey初始化配置
    Jersey框架简介
    警告: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:esignmanage' did not find a matching property.解决
    HIbernate基于外键的查询
    Apache Maven 入门篇(下)
    Apache Maven 入门篇 ( 上 )
    DetachedCriteria用法
    SQL Excel导入到sqlserver表
    轮番图片js
    Js Tab页(二)
  • 原文地址:https://www.cnblogs.com/zhai1997/p/12036803.html
Copyright © 2020-2023  润新知