自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 JAVA-数据结构-哈希表-附leetcode

JAVA-数据结构-哈希表-附leetcode1.简介哈希表也叫散列表键值对 key -> valueeg: 2019141022318 -> 张三时间复杂度访问不存在搜索O(1)插入O(1)删除O(1)(碰撞 O(k) )2.JAVA 哈希表基本操作public static void main(String[] args) { // 创建哈希表 String[] hashTable =

2022-03-21 21:04:40 850

原创 JAVA-数据结构-队列-附leetcode

队列自学笔记

2022-03-14 20:39:13 404

原创 JAVA-数据结构-数组-附leetcode

数据结构个人笔记

2022-03-13 20:33:15 1664

原创 JAVA-数据结构-链表-附leetcode

个人笔记

2022-03-13 20:31:09 1287

原创 JAVA-Stream流

1.什么是Stream流在JAVA8中基于Lambda引入的概念,用于简化集合和数组操作的API。eg:(1)从集合中找到姓张的放到新集合(2)找姓张的名称长度是3的名字//不使用Stream流import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.List;public class StreamTest { publi.

2022-02-18 16:38:49 169

原创 栈的应用——递归

void main(){ int a,b,c; func1(a,b); c=a+b;}void func1(int a, int b){ int x; func2(x); x=x+100;}void func2(int x){ int m,n;}1.函数调用的特点:最后调用的函数是最先执行结束的(LIFO)2.函数调用时,需要用一个栈来存储:调用返回地址、实参、局部变量main函数一层一层压下去3.适合递归解决的.

2021-12-31 17:55:24 1044

原创 栈的应用——括号、前缀后缀表达式

1.括号匹配问题(((()))) ()()(())最后出现的左括号会最先匹配(LIFO)所有括号都可以两两配对。每出现一个右括号,就消耗一个左括号,出栈操作遇到左括号就入栈,遇到右括号就“消耗”一个左括号出栈。...

2021-12-31 16:42:08 780

原创 数据结构——队列

1.定义:队列也是一种特殊的线性表(只允许在一端进行插入,在另一端删除的线性表)现实例子:打饭排队相关术语:空队列:没有任何数据元素的队列队头:允许删除的一端队尾:允许插入的一端2.特点:先进先出(FIFO first in first out)3.队列的基本操作:4.队列的顺序实现:#define MaxSize 10typedef struct{ int data[MaxSize]; i...

2021-12-30 21:30:16 636

原创 栈(stack)

1.定义:栈(stack)一种特殊(只允许在一端进行插入或删除操作)的线性表。现实例子:一摞盘子只能在盘子最上面操作,烤串,羽毛球盒放取羽毛球,都只能在顶部2.栈的术语栈顶:允许进行插入删除的一端栈底:不允许进行插入删除的一端3.栈的特点:后进先出(Last in First Out)(给进栈顺序,选合法出栈顺序)4.栈的基本操作:5.顺序栈//顺序栈#define MaxSize 10typedef struct{ int data[MaxS.

2021-12-30 16:59:35 611

原创 顺序表和链表对比

逻辑结构上:都是线性结构,线性表存储结构上: 优点 缺点 顺序表 支持随机存取、 存储密度高 大片连续空间分配不方便 改变容量不方便 链表 离散的小空间分配方便 改变容量方便 不可随机存取 存储密度低 基本操作:1.创建顺序表:需要预分配大片连续空间(分配空间小,则之后不方便扩展容量,分配空间大,则浪费内存空间)链表:只需分配一个头节点(甚至

2021-12-30 15:59:57 256

原创 单链表大全

一.单链表的定义1.什么是单链表:每个节点除了存储数据元素,还要存储指向下一个节点的指针(优点:不要求大片连续空间,改变容量方便缺点:不可随机存储,要消耗一定空间存放指针)2.代码定义一个单链表#include <stdio.h>//不带头节点 写代码更麻烦typedef struct LNode{ int data; //数据域 可以用其他数据类型 struct LNode *next;}LNode, *LinkList;//LinkList

2021-12-29 16:03:23 345

原创 操作系统——进程通信

1.概念:进程通信就是指进程之间的信息交换2.产生原因:进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。为了保证安全,一个进程不能直接访问另一个进程的地址空间。但有时候进程之间信息交换是必须的,所以要研究操作系统的进程通信。3.共享存储:两个进程对共享空间的访问必须是互斥的(互斥访问通过操作系统提供的工具实现)操作系统只负责提供共享空间和同步互斥工具(eg: P\V操作)3.1基于数据结构的共享比如共享空间里之只能放一个长度

2021-12-29 15:20:46 850 1

原创 操作系统——进程

1.进程的定义程序:指令序列早期计算机(只支持单道程序)CPU、内存、I/O等系统资源都为一个程序服务这个阶段同一个时间段内,内存中只会存在和一个程序有关的相关数据,包括程序段(代码本身)可以只存在低地址部分和数据段(处理的数据 eg:变量)可以只存在高地址部分后来多道程序技术:这个阶段同一个时间段内,内存中会有多个程序有关的相关数据,为了方便操作系统管理,完成各程序并发执行,引入了进程、进程实体的概念进程控制块(PCB)进程存在的唯一标志用来描述操作系统各种信息

2021-12-29 14:13:20 3164

原创 操作系统——系统调用

1.简介操作系统作为用户和计算机的接口,需要向上提供一些简单易用的服务,主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成系统调用是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。2.为什么要提供系统调用?小红和小明一起去打印作业,按下打印按钮之后,打印内容并没有混淆。如果进程可以随便使用打印机,两个打印的作业就会混杂。解决混淆的方法:操作系统提供系统调用功能,用户进程想要使用打印

2021-12-28 21:33:49 4302

原创 中断和异常

1.中断机制的诞生:早期计算机只能一个一个执行,程序串行执行,同一时刻只有一个程序在执行,资源利用率低。之后人们发明了操作系统,引入中断机制,实现了多道程序并发执行。本质:发生中断就意味着需要操作系统介入,展开管理工作。 当中断发生时,CPU会立即进入核心态 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理 对于不同中断信号,会进行不同处理发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作...

2021-12-28 19:49:49 194

原创 操作系统运行机制和体系结构

1.什么是指令?C语言代码——>翻译——>机器语言指令指令指CPU能够识别和执行的最基本命令eg:加、减、乘、除指令但是有的指令有很高的权限,随意使用很危险eg:内存清零指令2.所以指令分类特权指令:不允许用户程序使用非特权指令3.所以CPU要判断是否能执行特权指令于是CPU就分为了用户态(目态):此时CPU只能执行非特权指令核心态(管态):此时CPU特权指令、非特权指令都可以执行CPU状态用程序状态字寄存器(PSW)中的某标志位来标识当前处理

2021-12-28 17:19:09 229

原创 操作系统发展和分类

1.手工操作阶段无操作系统,程序员使用打孔机操作,用有无孔代表二进制1,0纸带输入/输出远远慢于计算机处理速度,CPU浪费了大量时间。缺点:用户独占全机、人机速度矛盾导致资源利用率低。2.批处理阶段单道批处理系统引入脱机输入/输出技术(用磁带完成),并监督程序(操作系统雏形)控制作业的输入、输出。程序员-纸带机-外围机-磁带-计算机-磁带-外围机-纸带机-用户等待输入输出时间大大减小优点:缓解了一定程度的人机速度矛盾,资源利用效率有所提升。缺点:内存中仅能有一道程序运

2021-12-28 15:46:20 437

原创 操作系统四个特征

操作系统四大特征:并发、共享、虚拟、异步。1.并发:指两个或多个事件再同一时间间隔内发生,宏观上同时发生,微观上交替发生(并行:两个多个事件同一时刻同时发生)操作系统的并发性指计算机系统中同时存在多个运行着的程序。一个单核处理机同一时刻只能执行一个程序。即使现在多核但大部分时刻我们可能同时操作很多很多程序,即使4核,也依然要并发。2.共享共享指资源共享,指系统中的资源可供内存中多个并发执行的进程共同使用两种资源共享方式:互斥共享:一个时间段内只允许一个进程访问该资源

2021-12-28 14:31:34 16157

原创 操作系统的概念、功能

1.操作系统裸机(硬件只听得懂二进制指令)——>操作系统(属于软件,提供良好交互界面)——>应用软件——>用户使用2.概念操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织和调度计算机工作和资源的分配;以提供给用户和其他软件方便的借口和环境;它是计算机系统中最基本的系统软件。直观eg:作为系统资源管理者:功能处理机(CPU)管理,存储器管理,文件管理,设备管理目的 安全 高效目标 为上层(用户)提供方便易用的服务封装思..

2021-12-28 13:13:11 1262

原创 顺序表的查找

//静态查找 非常简单int GetElem(SqList L, int i){ return L.data[i-1]; }//动态 按位查找 O(1)int GetElem(SeqList L,int i){ return L.data[i-1];//每次取几个字节与指针类型有关}//动态 按值查找int LocateElem(SeqList L,int e){ for(int i=0; i<L.length; i++) ...

2021-12-26 18:33:53 217

原创 顺序表的实现——动态分配

//顺序表的实现——动态分配#include <malloc.h>#define InitSize 10typedef struct { int *data; int MaxSize; int length;}SeqList;void InitList(SeqList &L){ L.data =(int*)malloc(InitSize*sizeof(int)); L.length =0; L.MaxSize=InitSize;.

2021-12-26 16:36:07 113

原创 线性表定义基本操作1

线性表的定义:特点:1. int 都int , struct 都 struct2. 序列 有次序3. 有限注意:a i是线性表的位序 a1表头 a n表尾中间元素都有前驱和后继线性表操作:(对数据结构基本操作 创销 增删改查 改第一步是查,可以根据具体需求改的操作)(没有给出具体参数类型,函数名和参数名也都可以改,但是要有可读性)(& 对参数结果需要带回来,需要&,如下图上图修改结果没有带回 test内x是另一个上...

2021-12-26 14:30:59 269

原创 空间复杂度

无论问题规模怎么变,算法运行内存空间都是固定的常量,算法空间复杂度S(n)=O(1)即算法原地工作。eg:#include <stdio.h>void LoveYou(int n){ //n为问题规模 int i = 1; //1 while (i<=n) { i++;//1 printf("Happy!",i); } printf("Happy to you!",n);}有的与问题规模有关..

2021-12-26 14:09:29 440

原创 算法时间复杂度

1.为什么不能让算法先运行,再事后统计时间?1.1 机器性能不同 超算和单片机1.2 编程语言效率不同 C Python1.3 编译程序产生的机器指令质量有关1.4有些算法无法事后统计,比如:导弹系统

2021-12-25 21:15:23 494

原创 数据结构——算法绪论

程序=数据结构+算法数据结构——现实问题信息化算法——处理信息解决实际问题算法特性:1.有穷性:有穷步+有穷时间算法有穷,程序可以无穷2.确定性:相同输入产生相同输出3.可行性:能够用现有基本运算实现4.输入:算法有零个或多个输入 输入取自于特定对象集合5.输出算法有一个或多个输出 输出与输入有特定关系好算法的特质:1.正确性:算法应该正确解决求解问题2.可读性:帮助他人理解(算法可以用伪代码,甚至文字表示,重要是无歧义)3.健壮性:输

2021-12-25 19:53:14 234

原创 数据结构引言:

1.数据结构目的:如何用程序代码把现实世界问题信息化如何用计算机高效地处理信息从而创造价值。EG:记录一个用户金钱数据——浮点型变量排队——数组微博用户——?2.为什么学?人类文明——农业革命-工业革命-信息革命3.数据: 数据是信息的载体,是描述客观事物属性的数,字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合,数据是计算机程序加工的原料。4.数据元素:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理,一个数据元素由若干数据项组..

2021-12-25 19:33:36 406

原创 顺序表插入和删除

#define MaxSize 10#include <stdio.h>typedef struct { int data[MaxSize]; int length;}SqList;//在L的位序i 插入元素e//void ListInsert(SqList &L, int i, int e){// //i的合法值 [1,length+1]// for(int j=L.length; j>=i; j--) //将i个元素之后的元素后移/.

2021-11-13 19:38:04 1090

原创 顺序表的定义

1.顺序表的定义顺序表——用顺序存储的方式实现线性表顺序存储eg: A1-A2-A3-A4-A5如果第一个位置是location(L),那么第二个就是location(L)+数据元素大小[sizeof(ElemType)可以查看数据元素大小]2.顺序表的实现——静态分配#define MaxSize 10 //定义最大长度typedef struct { ElemType data[MaxSize]; //ElemType是数据类型 实际用可以换成int stru

2021-11-13 15:11:53 5152

原创 JAVA模拟ATM机基本操作

本项目直接写在两个类里Talk is cheap. Show me the code.package itjiangfeng;import java.util.ArrayList;import java.util.Random;import java.util.Scanner;public class ATMSystem { public static void main(String[] args) { //1.系统需要的容器对象 ArrayList

2021-10-23 00:09:34 152

原创 Python实现抽签(团日活动抽倒霉蛋

Python实现抽签(团日活动抽倒霉蛋方法一(每个人都有序号或学号import randomfor i in range(3): print(random.randint(10,30))#renge(需要的人数)下面括号是指10-30的整数你班级是40人可以设置为(1,40)或者学号(2021141040000,2021141040050)## 方法二(直接放名字```pythonimport randommembers = ['张三', '李四', '王二麻子',

2021-09-19 13:21:25 2553 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除