数据结构与算法
算法与数据结构数据结构与抽象数据类型
逻辑结构可以二元组B=(D,R)表示,其中D是数据元素集合,R是D中数据元素间关系集合
问题决定逻辑结构
线性结构:
图状结构:
树形结构:
存储结构数据的逻辑结构是独立于计算机的,它与数据在计算机中的存储无关,如果将数据在计算机中无规律地存储,是没有用的。
对于一个数据结构B=(K,R),必须建立从结点集合到计算机某个存储区域M的一个映象,这个映象要直接或间接地表达结点之间的关系R
顺序存储
将逻辑上相邻的结点存储在连续存储区域M的相邻的存储单元中,使逻辑相邻的节点一定是物理位置相邻
数组就是顺序储存的一个典型
链式存储
链式存储方式是给每一个结点附加一个指针段,一个结点的指针所指的是该结点的后继的存储地址;
一个结点可能有多个后继,所以指针段可以是一个指针,也可以是多个指针。
索引存储
元素的地址集中储存在索引区域中,搜索索引区域可以快速获取数据地址。
以线性结构为例,设开始结点的索引号为1,其他结点的索引号等于其驱结点的索引号加1,则每一个结点都有唯一的索引号,根据结点的索引号确定该结点的储存地址,进而访问结点数据。
字典的索引目录就是索 ...
常见正则表达式
一、校验数字的表达式
数字:1^[0-9]*$
n位的数字:1^\d{n}$
至少n位的数字:
1^\d{n,}$
m-n位的数字:1^\d{m,n}$
零和非零开头的数字:1^(0|[1-9][0-9]*)$
非零开头的最多带两位小数的数字:1^([1-9][0-9]*)+(.[0-9]{1,2})?$
带1-2位小数的正数或负数:1^(\-)?\d+(\.\d{1,2})?$
正数、负数、和小数:1^(\-|\+)?\d+(\.\d+)?$
有两位小数的正实数:1^[0-9]+(.[0-9]{2})?$
有1~3位小数的正实数:1^[0-9]+(.[0-9]{1,3})?$
非零的正整数:1^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
非零的负整数:1^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
非负整数:1^\d+$ 或 ^[1-9] ...
正则表达式
正则表达式构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为”元字符”)组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
普通字符普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。
字符
描述
[ABC]
匹配 […] 中的所有字符,例如 [aeiou] 匹配字符串 “google runoob taobao” 中所有的 e o u a 字母。
ABC
匹配除了 […] 中字符的所有字符,例如 aeiou 匹配字符串 “google runoob taobao” 中除了 e o u a 字母的所有字符。
[A-Z]
[A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母 ...
JAVA基础
注释Java 支持三种注释方式:
单行注释
多行注释
文档注释
前两种分别是// 和 /* */,第三种被称作文档注释,它以 /**开始,以 */结束。
文档注释允许你在程序中嵌入关于程序的信息。
文档注释,使你更加方便的记录你的程序信息。
JAVA基础关键字被赋予特殊含义的单词
字母全部小写
代码编辑器一般对此都有渲染JAVA的数据类型
字符型char表示通常意义上字符,用’’括起来
如:’A’,’中’等
采用unicode编码
布尔值/逻辑值采用逻辑运算,一般用于程序流程控制
一般取值为ture或false(不能用0/1代替)
整型有固定表数范围和字符长度,不受操作系统和硬件影响
类型
占用字节
表数范围
byte
1字节
-128~127
short
2字节
-2^15~2^15-1
int
4字节
-2^31~2^31-1
long
8字节
-2^63~2^63-1
整型默认问题java整型变量默认int
声明长整型常量在常量后加’l’或’L’;
如:整型3、长整型3L;
注意默认特性的编程应用:
1long k = 92233641 ...
html
HTML标记语言,实现图片、音频、视频、超链接等
一、声明html1234567891011121314<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewpoet" content="width=device-width,initial-scale=1.0"> <!-- 网页标题 --> <title>这是网页</title> </head><!-- 身体,主要写标签内容 --><body> <!-- html双标签包含文档所有内容 --> </body> </html>
二、标签单标签1.图像标签1<img src="" alt="">
src ...
css基础
css基础一、盒子模型二、使用
1.内部插入 -
123456789101112131415161718192021<!doctype html><html lang="zh-CN"><head><meta charset="utf-8" /><title>我的 CSS 测试</title><style>h1 {color: blue;background-color: yellow;border: 1px solid black;}p {color: red;}</style></head><body><h1>Hello World!</h1><p>这是我的第一个 CSS 示例</p></body></html>
2.外部使用 -
123456789101112<!doctype html>< ...
pandas
pandas库介绍概述numpy在向量化计算中表现优异,但在处理更灵活、更复杂的数据中则相对较差。
基于numpy库的pandas库则提供了更快更简单的高级数据结构和操作工具
功能
表格操作
基本操作:表格创建、查询、修改等
进阶操作:表格排序、索引转换、可视化等
透视表:分组、聚合、重塑(用于离散数据分析)
离散化和分位数分析(连续数据离散化后分析)
数据载入
csv:文件后缀.csv
一种文本格式表格,默认用分号
如果表格内数据有逗号,应该用双引号包裹
Excel:文件后缀.xlsx微软office办公
对象创建一、Pandas Series对象
series是带标签数据的一堆数组
series对象的创建通用结构:1pd.Serives(data、index=index、dtype=dtype)
data:数据、可以是列表、字典或Numpy数组
index:索引,为可选参数
dtype:数据类型,为可选参数
1.用列表创建1.缺少index时,默认为整数序列123import pandas as pddata = pd.Series([1,2,3,4,5]) ...
Numpy
Numpy库介绍Numpy库数据基本类型
bool_
布尔型数据类型(True 或者 False)
int_
默认的整数类型(类似于 C 语言中的 long,int32 或 int64)
intc
与 C 的 int 类型一样,一般是 int32 或 int 64
intp
用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64)
int8
字节(-128 to 127)
int16
整数(-32768 to 32767)
int32
整数(-2147483648 to 2147483647)
int64
整数(-9223372036854775808 to 9223372036854775807)
uint8
无符号整数(0 to 255)
一、numpy数组的创建arange格式1numpy.arange(start, stop, step, dtype)
参数
描述
start
起始值,默认为0
stop
终止值(不包含)
step
步长,默认为1
dtype ...
python excel
excel简介[TOC]
数据类型包括数值、日期、字符、错误值、逻辑值。
数值:整数、小数
日期:2024/5/30、2024-5-30
字符:字母、汉字、标点
错误值:#value
逻辑值:true,false
固定用法1.标点符号都是英文
2.通过单元格地址获取所有单元格的值
单元格的选定
连续单元格
鼠标拖拽
CTRL+SHIFT+鼠标左键
SHIFT+双击边线
非连续单元格
CTRL+鼠标左键
特殊单元格
切换到数据区域的边界:CTRL+↑、↓、←、→
定位特殊单元格:CTRL+G 定位
excel不区分大小写
快速填充
鼠标左键+填充柄
Tkinter
Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口。作为 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面,我们可以用GUI 实现很多直观的功能,比如想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没用用户体验的。所有开发一个图像化的小窗口,就是必要的。
对于稍有GUI编程经验的人来说,Python的Tkinter界面库是非常简单的。python的GUI库非常多,选择Tkinter,一是最为简单,二是自带库,不需下载安装,随时使用,三则是从需求出发,Python作为一种脚本语言,一种胶水语言,一般不会用它来开发复杂的桌面应用,它并不具备这方面的优势,使用Python,可以把它作为一个灵活的工具,而不是作为主要开发语言,那么在工作中,需要制作一个小工具,肯定是需要有界面的,不仅自己用,也能分享别人使用,在这种需求下,Tkinter是足够胜任的!
但是,Tkinter相较于c++以及c#的GUI窗体设计来说,就没有后两者那样的方便与 ...







