zjz0818

数据结构

主要就是数据之间的关系,数据与数据的交互

每个东西既然要动,那就得有依据的动--->

  • 说明它本身就动不了的:要么交互位置,要么从首尾干掉了..
  • 数据与数据的交互:无法就是判断咱两谁大,两个数据之间的交换--切除一些东西-判断:选择排序的思想.交换:冒泡,插入排序的思想

数据结构

  • 分类:集合,线性,树形,图状
  • 关键后三,都得会
  • 线性也就是一对一,前驱后驱

算法介绍

  • 算法是有穷的,程序的运行是无穷的,除非终结了
  • 数据类型,原子类型,结构类型---类似与java的基本类型,对象---他们都是数据,所以都可以由算法,集合操作
  • 时间复杂度,首先看for while 再看单个元素的变化,与目标值的公式
  • 口诀:常对幂指阶

关键明白:

  • 算法特性:有穷,确定,可行,输入,输出
  • 好算法: 正确性,可读性,健壮性(非法),高效率,低存储

思想:

一.图形思想

一.1.判断

  • 如果判断的元素多于两个,那么开始使用数轴
  • 如果判断的涉及多余一个,那么考虑边界(内外!!!)

一.2.对于一些数,集合什么的

  • 要有xy形式的图,遇到就画!!

二.有效性,无效性思想

二.1.放弃杂物,只要有用的

  • 如一个数轴上L-R的中间数,正常计算为(L+R)/2
  • 而我们要放弃L左边的距离,只关注L与R的关系,,,L+(R-L)/2---达成思路清晰!

二.2.增益,负增益

  • 增益指的是我们如果要求一些最大值时,我们考虑的第一个应该是增益

  • 如果增益有效,继续,增益无效则放弃

    • 注意要判断好前增益,后增益,前增益为负时应该放弃了,后增益完为负时,应该跳过到下一个正的
  • 当然还需一个计数器

  • 举例:最大子序和

相关文章: