开始写博客,目标一周一个项目总结,可能是一个具体的问题的求解方法,也可能是一周的学习笔记,还可能是一个算法的实现。
从2013年开始补起来
本周学习重点
数据结构
什么是数据结构?
数据结构概述:数据结构,简单的说是怎么把数据存在电脑里方便我们处理
1定义
书籍作者:严蔚明,吴伟民,高一凡,黄国瑜。
数据结构定义:
将现实中大量复杂的问题以特定的数据类型和特定存储结构保存到我们的
主存储器中 ,以及在此基础上为实现某个功能而执行相应的操作,这个相应的操作也叫算法。
数据的存储是很关键的问题,一个大的数据最好用链表。
通过计算机解决一个实际问题,将一个复杂的问题,
存储到计算机中去。如何保存个体,如何保存个体与个体的属性
属性实体,如何保存。
数据结构=个体+个体的关系
算法=对存储数据的操作。
从广义上讲,算法与数据没关系,
狭义 有关系,泛型。
数组,图,
每个元素拿出来。
操作依赖于存储结构。
2算法
预备知识
模块一:
一线性结构:
2.1连续存储数组,离散存储链表。
2.2线性结构的两种常见应用之一——栈,队列。
专题:递归。
1.1+2+3,求阶乘,汉诺塔,走迷宫。
二非线性结构
1树,
2图。
三查找和排序
折半和排序:冒泡,插入,选择,快速,归并。
Java中容器和数据结构相关知识。
Iterator 借口,map,哈希表。
2衡量算法的标准,解题方法和步骤。
2.1时间复杂度
大概程序要运行的次数,程序速度快。
2.2空间复杂度
算法运行过程中大概所占用的最大内存
2.3易读性
别人能不能很清晰的看懂你的程序。
2.4健壮性
识别非法输入。
三
数据结构的特点
数据结构是软件中最核心的课程。
栈内存与堆内存的区别,内存分配方法的不同。
语法是语句的树。
数据库和数据结构的差别。
数据库简化版。
数据的存储问题,字段,记录,表。
实物与实物的关系。
学了以后和没学没什么区别。
程序=数据的存储+数据的操作+可以被计算机执行的语言
预备知识。
数据结构
很重要,难度很大,但没啥具体用处。
四
数据结构的学法:
1 写伪代码。
2 通过一个语言去实现你的伪代码。
高深的图算法,链表是前提。
C语言指针讲的少。
指针,结构体,动态内存的分配和释放。
线性链表。
链表的基本操作。
看这个很难,但看懂后会有种,自我挑战的快感。
争取了解指针的一部分。