Java教程

算法思维01:图形,有效性思想

本文主要是介绍算法思维01:图形,有效性思想,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

序言

  • 首先介绍一下数据结构,再看算法
  • 对于数据结构的介绍,每一个词都得扣,都需要思考

一.数据结构

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

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

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

数据结构

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

算法介绍

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

关键明白:

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

二.思想:

一.图形思想

一.1.判断

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

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

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

二.有效性,无效性思想

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

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

二.2.增益,负增益

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

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

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

  • 举例:最大子序和

这篇关于算法思维01:图形,有效性思想的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!