自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浏览器输入一个http协议的url,如何定位服务资源?

请求流程:域名解析 进行TCP三次握手过程建立连接 建立TCP连接后发起http请求 服务器响应http请求 浏览器解析htm代码,并请求html代码中的资源(如js、css、图片等) 断开TCP连接

2021-04-16 15:37:14 92

原创 排序算法的实现Java(插入排序,希尔排序,选择排序,冒泡排序,堆排序,快速排序)

一、直接插入排序 //插入排序 //1.针对比较小的数组,排序效率比较高 //2.如果数组本身已经比较有序,此时排序效率也比较高 //时间复杂度:O(N^2) 稳定性:稳定 public static void insertSort(int[] arr) { // 这个循环就是在控制代码进行 N 次插入过程 for (int bound = 1; bound < arr.length; bound++) {

2021-03-25 09:49:59 293 1

原创 堆的应用----堆排序,topk问题

一、堆排序 //堆排序 public static void heapSort(int[] arr) { // 1. 先进行建堆 createHeap(arr); // 2. 循环进行交换堆顶元素和最后一个元素的过程, 并且删除该元素, 进行向下调整 int heapSize = arr.length; for (int i = 0; i < arr.length; i++) {

2021-03-24 10:46:41 168

原创 用堆模拟实现优先级队列

一、堆的性质:堆中某个节点的值总是不大于或不小于其父节点的值 堆总是一棵完全二叉树二、堆向下调整 // array 表示用来存储堆的数组. // size 表示数组上有效元素的个数(有效元素不一定和 array.length 一样) // index 表示从哪个位置开始进行向下调整 // 以大堆为例 public static void shiftDown(int[] array, int size, int index) { int pa

2021-03-24 10:42:35 126

原创 105.根据一棵树的先序遍历与中序遍历构造二叉树(力扣)

解题思路:依次取出先序遍历的每个节点,取出的第一个结点 A,一定是根节点;再取出第二个节点 B,此时不能确定 B 是 A 的左子树还是右子树,需要看中序遍历;在中序遍历中,如果 B 在 A 的左侧,那么 B 就是 A 的左子树,如果 B 在 A 的右侧,那么 B 就是 A 的右子树;以此类推// 成员变量,index 表示当前访问到 先序 中的第几个元素 public int index = 0; public TreeNode buildTree(int[] pr..

2021-03-24 10:31:58 134

原创 236.二叉树的最近公共祖先(力扣)

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先百度百科中最近公共祖先的定义为:对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。解题思路:从某个节点出发,如果能同时找到 p 和 q,说明这个节点是公共祖先。那么如何判断最近的公共祖先呢?从该节点出发进行查找时,p 和 q 主要从三个渠道进行查找:该节点自身是不是 p 或 q 该节点的左子树是否包含 q 或 q 该节点的

2021-03-23 16:51:08 140

原创 使用顺序表和链表实现栈和队列

一、栈一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈,出数据在栈顶。栈的核心操作:入栈:把元素放到栈里 出栈:把最后进来的元素删掉 取栈顶元素:获取到最后一个进来的元素的结果使用顺序表实现栈:使用尾插操作表示入栈;使用尾删操作表示出栈;使用根据下表获取元素的操作表示取栈顶元素publi..

2021-03-09 11:29:35 272

原创 自定义异常 实现登录

实现一个简单的控制台版用户登陆程序, 程序启动提示用户输入用户名和密码. 如果用户名或密码出错, 使用自定义异常的方式来处理异常类之间的关系:顶层类 Throwable 派生出两个重要的子类:Error 和 Exception Error 指的是 Java 运行时内部错误和资源耗尽错误,应用程序不抛出此类异常,一旦出现,除了告知用户并使程序终止之外,再无能无力,这种情况很少出现 Exception 是我们程序猿所使用的异常类的父类,其中 Exception 有一个子类称为 RuntimeExce

2021-01-25 16:38:59 417

原创 多态

多态在java语法中从下面三个方面体现:1、向上转型:父类的引用指向一个子类的实例(子类的引用转成了父类的引用)直接赋值 方法传参 方法返回2、动态绑定:父类和子类都有同名同参数的方法,此时通过父类引用调用该方法时,就是在运行时决定调用父类版本还是子类版本3、方法重写:普通方法可以重写,static修饰的静态方法不可以重写 子类方法的访问权限不能低于父类方法的访问权限多态:一个引用能表现出多种不同的形态多态是封装的更进一步,让类的使用者不需要关注具体对象的类型,也能正确使用.

2021-01-22 21:02:31 110

原创 java继承 以及 super与this的区别

父类中如果没有定义任何构造方法或者只有一个无参构造方法,此时new一个子类的实例,就会调用父类的无参构造,子类不需要显示的调用; 如果父类中有一个或多个带参构造方法,此时如果new一个子类的实例,就需要显示的调用父类的构造方法并进行传参,否则无法创建父类实例,会编译出错; 使用super关键字就能够调用父类的构造方法; 创建子类实例时,先调用父类构造方法,再调用子类构造方法,并且super()必须放在第一行。super 与 this 的区别如果子类中的一个属性是从父类继承过来的,既可以使用 t.

2021-01-22 17:22:22 364

原创 java中实现字符串的常见操作:比较(myCompareTo)、查找(myIndexOf)、替换(myReplace)

1、字符串的比较 myCompareTo方法//实现方法 compareTo, 能够实现按照字典序比较字符串大小 public static int myCompareTo(String src, String dst) { char[] srcArray = src.toCharArray(); char[] dstArray = dst.toCharArray(); int srcLen = srcArray.length; .

2021-01-22 16:28:49 262

原创 String类

一、字符串比较相等“==” 比较地址是否相等String str1 = "Hello";String str2 = "Hello";System.out.println(str1 == str2);// 执行结果trueString str1 = new String("Hello");String str2 = new String("Hello");System.out.println(str1 == str2);// 执行结果false代码1的内存布局代码2.

2021-01-18 18:27:04 72

原创 Java 循环结构之while循环

基本语法格式:while(循环条件){ 循环语句;}例1:计算 1 - 100 的和int n = 1;int result = 0;while (n <= 100) { result += n; n++;}System.out.println(num);例2:计算 5 的阶乘int n = 1;int result = 1;while (n <= 5) { result *= n; n++;}Sys...

2020-12-08 18:04:52 764

原创 JDK JRE JVM

JDK是Java开发工具包,包括Java运行环境JRE、Java工具和Java基础类库 JRE是运行JAVA程序所必须的环境的集合,通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。包括JVM标准实现及Java核心类库 JVM是整个java实现跨平台的最核心的部分,所有的Java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行...

2020-12-05 18:26:03 57

原创 offsetof宏

写一个宏,计算结构体中某变量相对于首地址的偏移#define OFFSETOF(sn, mn) (size_t)&(((sn*)0)->mn)假设结构体的首地址从0开始 将0转换成结构体变量的地址,并指向它的成员 然后取这个成员的地址 最后将其转换成size_t类型...

2020-11-18 17:44:18 100

原创 柔性数组

定义:结构中的最后一个元素允许是未知大小的数组,这就叫做『柔性数组』成员。struct S1{ int num; char arr[];};柔性数组的特点:结构中的柔性数组成员前面必须有至少一个其他成员。 sizeof 返回这种结构大小不包括柔性数组的内存。 包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小。柔性数组的使用:#define _CRT_SECURE_NO_WARNINGS 1#inc

2020-11-05 11:17:17 161

原创 动态内存管理

内存分配的区域:栈区:存放局部变量,形参,函数执行结束时这些存储单元自动被释放。 堆区:用于动态内存分配。 静态区:存放全局变量,静态变量。 代码段 :存放可执行代码,只读常量。内存函数:1. mallocvoid* malloc (size_t size);malloc函数向内存申请一块连续可用的空间。 如果开辟成功,则返回一个指向开辟空间起始地址的指针; 如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。 返回值的类型是 void* ,所以mal.

2020-11-02 16:25:46 173

原创 常用的字符函数和字符串函数及其模拟实现

1.strlensize_t strlen ( const char * str );求字符串的长度,方法是从开始到遇到第一个'\0', 字符串已'\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包含 '\0' ) 参数指向的字符串必须要以 '\0' 结束 注意函数的返回值为size_t,是无符号size_t my_strlen(const char* str){ int count = 0;//计数器 assert(str != NULL.

2020-10-26 17:18:08 233

原创 大小端字节序存储

大端字节序存储:把一个数的低位字节序的内容放在高地址处,把高位字节序内容放在低地址处。 小端字节序存储:把一个数的低位字节序的内容放在低地址处,把高位字节序内容放在高地址处。例如:int b=0x11223344大端字节序存储为:11 22 33 44(低地址------->高地址)小端字节序存储为:44 33 22 11(低地址------->高地址)下面写一段代码,判断当前机器采用的是大端还是小端,思路如下:先定义一个整形变量并赋值为1,取首元素地址; 若首元素地址为.

2020-09-27 17:29:31 249

原创 C语言实现扫雷游戏

#define _CRT_SECURE_NO_WARNINGS 1#include "game.h"void menu(){ printf("***********************\n"); printf("******* 1.play ********\n"); printf("******* 0.exit ********\n"); printf("***********************\n");}void game(){ //扫雷游戏过程 //存放...

2020-09-11 15:34:19 82 1

原创 三子棋游戏

游戏介绍:使用C语言中二维数组和函数的基本知识实现一个三子棋游戏,这个游戏要实现的基本功能有初始化棋盘、棋盘的打印、玩家下棋、电脑下棋、判断输赢。代码框架:1.头文件(game.h)#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<string.h>#define ROW 3#define COL

2020-09-04 09:58:18 1202

原创 做更好的自己

第一篇CSDN~~~2020年的夏天,我的研一生活已经结束了,即将迈向研二这关键的一年,我决定重新开始学习编程。我本科的专业是电子信息科学与技术,学习过C++这门课,但是觉得自己只是了解了一些皮毛,要想学好一门语言不仅要打好基础还要不断深入的学习,所以我决定从C语言开始学,在学好C语言的基础上,再继续学习Java,在这期间我会督促自己多看代码多写代码,及时总结自己学习中的问题和心得,多发一些CSDN,争取能在毕业之前熟练掌握C语言和Java。希望在CSDN这个大佬云集的地方能和大家一起分享学习心

2020-08-08 22:28:01 121 1

空空如也

空空如也

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

TA关注的人

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