• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
zjyy
博客园    首页    新随笔    联系   管理    订阅  订阅
第二章学习小结

第二章学习小结

  对比于上学期所学的知识,能切实感觉到这个学期的课程更加深入和抽象,在学习上难度也有所增加,虽然上个学期就听老师推荐过博客园,但是真正开始写博客还是第一次,最直观的感受就是在完成博客的过程中,能够帮助我们梳理了一下知识点,算是复习了一遍

一、内容小结

  1、线性表的定义:由n个数据特性相同的数据元素构成的有限序列,n=0时为空表

    分为顺序表和链表

  2、优缺点

    顺序存储:优点:随机存取;缺点:插入、删除扩容不方便

    链式存储:优点:方便插入、删除、扩容;缺点按下标查询效率低

  3、数组在栈区为用户开辟存储位置,如果定义为全局变量,则在堆区(全局变量:在所有函数之外)

  4、typedef把一个自己起的名字的类型用已经有的类型代替使用

    用法:typedef 已有类型名 新名

  5、bool类型

    while(x)=>true

    while (!x)=>false

  6、申请大空间

    int *a = new int[...]

   7、head指向的节点的成员

    head->next=*head.next

    LinkList L;与LNode *p含义是一样的

  8、数据结构分为逻辑结构和存储结构

    逻辑结构:抽象概念,独立于计算机之外,包括线性结构和为线性结构

      线性结构:线性表

      非线性结构:树结构、图结构和集合结构

    存储结构:包括顺序存储结构和链式存储结构

  9、时间复杂度:执行算法所需的计算工作量

    T(n)=O(f(n))

    O(1)循环次数与n无关

    O(n)一次循环

    O(n^2)嵌套循环

  10、空间复杂度:

    (1)寄存本身所用的命令、常数、变量和输入数据

    (2)数据进行操作的辅助存储空间

    (3)算法在实现时所需要的辅助空间

二、作业的完成过程积累

  1、求集合交集

#include <iostream>
#include <algorithm>	//包含sort函数
using namespace std;
int main()
{
  int m, n, i = 0, count = 0, k = 0, x = 0, y = 0;
  cin >> m >> n;

  int *a = new int[100000];	//创建三个数组,c用来装交集
  int *b = new int[100000];
  int *c = new int[200000];


  for(i = 0; i < m; i++){	//循环输入两个集合的数
    cin >> a[i];
  }
  for(k = 0; k < n; k++){
    cin >> b[k];
  }

  sort(a ,a+m);	//对两个数组排序,默认顺序
  sort(b ,b+n);	

  while(x < m && y < n){	//逐个对比两个数组的大小,小的往后一位

    if(a[x]==b[y]){	//相同 
      c[count]=a[x];
      count++;
      x++;
      y++;
    }
    else if(a[x] > b[y]){	//b数组后移一位 
      y++;	
    }
    else 
    x++;
    }

    cout << count << endl;	//输出相同的个数和元素 
    for(i = 0;i < count; i++){	
      cout<<c[i];
    if(i != count-1){	//最后一位不输出空格 
      cout << " ";
    }
  }
}

  

  ps:这是代码,一开始我没有另外设x和y,直接用i和k,但是答案一直错误,后来发现,因为i在前面的的循环中已经被改变了,所以导致答案错误

  2、sort函数的使用方法(开始地址,结束地址,compare),但是sort函数本身默认升序

三、学习问题

  目前的学习中发现自己对于很多基础知识的掌握还不够牢固,且在思考问题上总是不能想到一个巧妙地解决方法

四、接下来的目标

  多看一些题目,去思考怎么解题,多参考博客上优秀的代码,思考过后自己再打一遍,熟悉书上的只是概念

 

posted on 2019-03-17 18:29  zjyy  阅读(132)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3