首页 > 其他 > 详细

ds第一周学习记录

时间:2020-03-22 13:11:59      阅读:57      评论:0      收藏:0      [点我收藏+]

一、书本笔记

      1、逻辑结构和储存结构

技术分享图片     

                           顺序结构    ---数组类型

                         /

         储存结构

 

 

                         \

                            链式结构    ---指针类型

 

      2、抽象数据类型ADT

            数据抽象 数据封装 继承性 动态性

             技术分享图片                

         技术分享图片 没有初始条件可不写

              抽象数据类型的特征:实现与操作分离,从而实现封装。

              (我感觉就是 一个容器封装起来 集合之类的 里面有能用的方法  方法类似面向过程的函数)

 

      3、算法   

           · 时间复杂度

                 问题规模   ---   不关注具体数值 而是数量级

           · 空间复杂度

 

             (这里我电脑运行PrintN 循环和递归比较 循环很大的数也可以继续 可是递归10000可以100000就不行了

 

递归

#include<stdio.h>
#include<iostream>

void PrintN(int n);

int main()
{
    int n;
    scanf("%d",&n);
    PrintN(n);
    
    return 0;
}

void PrintN(int n)
{
    if(n)
    {
        PrintN(n-1);
        printf("%d\n",n);
    }
    
}

循环

#include<iostream>

using namespace std;

int main()
{
    int n;
    cin>>n;
    
    for(int i=1;i<=n;i++)
    {
        cout<<endl<<i;
    }
    
    return 0;
} 

 

 

                 最后找到的我电脑临界是 no 64909  yes64908 

                 看递归 每次调上一次的n-1 这样就要先储存这个n这次的程序 然后再n-1 n-2 ... 再到最好是1 再返回去到n 这样对内存的消耗是很大的 

                 这说明当问题规模变大时 递归这种方法就比循环的空间复杂度要更大 因而问题规模变大 循环的PrintN要好一点)

                 

 

ds第一周学习记录

原文:https://www.cnblogs.com/drgnibasaw/p/12545281.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!