- 博客(83)
- 收藏
- 关注
原创 经典算法面试题——Java篇-附带赠书活动,评论区随机选取一人赠书
二分法查找(Binary Search)也称折半查找,是指当每次查询时,将数据分为前后两部分,再用中值和待搜索的值进行比较,如果搜索的值大于中值,则使用同样的方式(二分法)向后搜索,反之则向前搜索,直到搜索结束为止。二分法使用的时候需要注意:二分法只适用于有序的数据,也就是说,数据必须是从小到大,或是从大到小排序的。// 二分法查找System.out.println("元素第一次出现的位置(从0开始):" + binaryResult);/**
2023-03-24 09:07:46
361
9
原创 数据结构与算法——堆的基本存储
堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。堆中某个节点的值总是不大于或不小于其父节点的值。堆总是一棵完全二叉树。
2023-03-23 07:00:00
1849
15
原创 十大经典排序算法(下)
由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量时间和内存。通俗地理解,例如有 10 个年龄不同的人,统计出有 8 个人的年龄比 A 小,那 A 的年龄就排在第 9 位,用这个方法可以得到其他每个人的位置,也就排好了序。重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。
2023-03-17 09:18:44
17346
10
原创 综合案例——淘宝焦点图布局,土豆案例
3.左右两个按钮 用链接,左箭头 prev 右箭头 next。4.底侧小圆点ul继续做。类名为 promo-nav。1.大盒子我们类名为:tb-promo 淘宝广告。2.里面放一张图片。
2023-03-10 18:12:50
651
原创 CSS定位
定位模式是否脱标移动位置是否常用static 静态定位否不能使用边偏移很少relative 相对定位否 占有位置相对于自身位置移动常用absolute 绝对定位是 不占有位置带有定位的父级常用fixed 固定定位是 不占有位置浏览器可视区常用sticky 粘性定位否 占有位置浏览器可视区当前阶段较少。
2023-03-08 18:21:15
1112
原创 CSS——学成在线案例
input文本框 button按钮。实际开发中,我们不会直接用链接a而是用li包含链接(li+a的做法)。一个search大盒子里面包含2个表单。
2023-03-03 12:32:18
1387
原创 css 浮动
float 属性用于创建浮动框,将其移动到一边,知道左边缘或右边缘触及包含块或者另外一个浮动框的边缘。浮动的语法:选择器 {float:属性值;属性值描述none元素不浮动(默认值)left元素向左浮动right元素向右浮动。
2023-02-22 20:32:39
314
原创 CSS 圆角边框 盒子阴影 文字阴影
语法: box-shadow:h-shadow v-shadow blur spread color inset;radius半径(圆的半径)原理:(椭)圆与边框的交集形成圆角效果。border-radius 属性用于设置元素的外边框圆角。使用:语法:border-radius:length;在css3中新增盒子阴影 box-shadow。半透明:rgba(0,0,0, .3)3.文字阴影(text-shadow)1.圆角边框(重点)
2023-02-16 15:44:22
528
原创 CSS盒子模型
border-style: solid 实线边框 dashed 虚线边框 dotted 点式虚线边框。CSS盒子模型的本质上是一个盒子,封装周围的HTML元素。他包括:边框,外边距,内边距和实际内容。border-collapse 属性控制浏览器 绘制表格边框的方式,他控制相邻单元格的边框。所谓盒子模型:就是把HTML页面的布局元素看作是一个矩形的盒子,也就是一个盛装内容的容器。也就是说,如果盒子已经有了高多和宽度,此时再指定内边距,回撑大盒子。边框宽度(粗细) 边框样式 边框颜色。
2022-12-02 16:04:01
590
1
原创 CSS的元素显示模式和CSS的背景
网页的标签元素非常多,在不同的地方会用到不同类型的标签,了解他们的特点可以更好的布局我们的网页。元素显示模式就是元素(标签)以什么方式进行显示,比如 自己占一行,比如一行可以放多个.HTML元素一般可以分为块元素和行内元素两种类型。元素模式元素排列设置样式默认宽度块级元素一行只能放一个块级元素可以设置宽度高度容器的100%行内元素一行可以放置多个元素不可以直接设置宽度高度它本身内容的宽度行内块元素一行可以放多个行内块元素可以设置高度和宽度。
2022-11-20 22:44:15
448
原创 CSS引入方式 Emmet语法 CSS复合选择器
样式表优点缺点使用情况控制范围行内样式表书写方便权重高结构样式混写较少控制一个标签内部样式表部分结构和样式相分离没有彻底分离较多控制一个页面外部样式表完全实现结构样式分离需要引入最多控制多个页面在CSS中,可以根据选择器的类型把选择器分为 基础选择器和符合选择器复合选择器建立在基础选择器上,对基本选择器进行组合形成的。符合选择器可以更准确更高效的选择目标元素(标签)符合选择器是由,两个或多个基础选择器,通过不同的方式组合而成的。
2022-11-16 21:14:13
555
19
原创 CSS基础选择器,CSS字体属性,CSS文本属性
属性表示注意点font-size字号单位px像素字体按工作中团队要求而定义字体粗细加粗 700/bold 不加粗 400/normal 数字后面不加单位font-style字体样式倾斜italic 不倾斜 normalfont字体连写1.字体连写是有顺序的,不能随意换位置2.其中字号和字体必须同时出现属性表示注意点color文本颜色通常用十六进制 例如:#ffftext-align文本对齐设置水平对齐方式文本缩写。
2022-11-12 22:38:13
471
1
原创 手拉手一起学HTML(下)——表格标签和列表标签,表单标签
一.表格标签1.1表格的主要作用1.2表格的基本语法 1.3表头单元格标签1.4表格属性1.6合并单元格(把多个单元格合并成一个单元格) 二.列表标签2.1无序列表2.2有序列表2.3自定义列表(重点)3.表单标签3.1为什么需要表单3.2表单的组成 3.3表单域是一个包含扁担元素的区域3.4表单控制(表单元素)3.4.1 input 表单元素 3.4.2 标签3.4.3 select 下拉表单元素3.4.4表单元素 表格是实际开发中非常常用的标签
2022-11-09 18:37:57
1304
20
原创 手拉手一起学 HTML(上)
HTML指的是超文本标记语言,他是描述网页的一种语言。 HTML 不是编程语言,而是一种标记语言,标记语言是一套标记标签。
2022-11-04 22:06:48
413
14
原创 猿创征文|计算机学生必须掌握的学习工具
进入社会后,进入公司后,更多的是用的开源的Linux 对于编程世界来说,简直就像一扇门。这是一个免费、开源、跨平台的代码编辑器,也是微软的产品,严格意义上来说,VS Code本身是不具备编译C语言程序的,但是安装相关插件,配置本地GCC路径后,也可以当做一个非常不错的C语言编程软件来使用,轻便灵活、运行速度快、占用内存少,常见的自动补全、语法提示、Git等功能都能很好支持,插件扩展丰富,生态环境良好,因此,对于新手来说,也是一个非常不错的选择,同款的Sublime Text等编辑器也有非常不错。
2022-11-01 14:14:05
963
24
原创 数据结构与算法——栈的表示和实现
ADT stack{数据对象:D={ai|ai属于ElemSet,i=1,2,...,n,n>=0}数据关系:R1={|ai-1,ai属于D,i=2,...,n}an端为栈顶,a1端为栈底基本操作:初始化,进栈,出栈,取栈顶元素等。
2022-10-30 13:40:47
487
16
原创 数据结构与算法——栈和队列定义和特点
栈(stack)是一个特殊的线性表是限定仅在一端(通常是尾部)运行插入和删除操作的线性表又称为先进先出的线性表简称 LIFO 结构 9(Last In First out)
2022-10-27 20:15:37
1317
原创 数据结构与算法——链表(双向链表,顺序表与链表的比较)
在双向链表中有此操作(如:ListLength,GetElem等)因此涉及一个方向的指针。故它们的算法与线性表相同,但在插入,删除时则需要同时修改两个方向上的指针,两者的操作的时间复杂度均为T(n)=O(n)双向链表:在单链表的每个结点里在增加一个指向其直接前驱的指针域prior 这样链表就形成了有两个方向不同的链。p的后继结点的前驱结点为自身。即:p的前驱结点的后继结点为它自身。
2022-10-25 15:35:27
565
1
原创 数据结构与算法——链表(头插法,尾插法,循环链表)
注意:由于循环链表没有NULL指针,故涉及遍历操作时,其终止条件就不再像非循环链表那样判断p或p-->next是否为空,而是判断它们是否等于头指针)循环链表:是一种头尾相接的链表(即:表中最后一个结点的指针域指向头结点,整个链表形成一个环状)初始时,r同L均指向头节点,每读入一个数据元素则申请一个新结点,将新结点插入到尾部结点后,r指向新结点。从一个空表L开始,将新结点逐个插入到链表的尾部,尾指针r指向链表的为节点。循环链表的写发与单链表类似 只需改变循环条件。例如:带尾指针循环链表的合并。
2022-10-23 21:19:40
811
4
原创 数据结构与算法——单链表的基本操作的实现
(从链表的头指针出发,顺着链域next逐个结点往下搜索,直至搜索到第i个为止,因此,链表不是随机存取结)链表任然存在,但链表中无元素,成为空链表(头指针和头节点任然存在)空表:链表中无元素,称为空链表(头指针和头节点任然存在)按值查找:根据指定数据获取该数据所在的位置序号(是第几个数据元素)按值查找:根据指定数据获取该数据元素所在的位置(该数据的地址)算法思路:从首元结点开始,依次计算所有节点。算法思路:从头指针开始,依次释放所有结点。思路:判断头节点指针域是否为空。算法步骤:(找到i-1结点)
2022-10-21 18:49:28
783
15
原创 数据结构与算法——线性表的链式表示与实现
首元节点的地址保存在头节点的指针域中,所以在链表的第一个位置上的操作和其他位置一至,无需进行特殊处理。//声明结点的类型和指向结点的指针类型。n个结点由指针链组成的一个链表,它是线性表的链式存储映像,称为线性表的链式存储结构。无论链表是否为空,头指针都指向头节点的非空指针,因此空表和非空表的处理一饿就统一了。单链表由表头唯一确定,因此单链表可以用头指针的名字来命名,若头指针名时L,则把链表称为表L。结点在存储器中的位置时任意的,即逻辑上相邻的数据元素在物理上不一定相邻。结点有两个指针域的链表,称为双链表。
2022-10-19 21:58:44
474
2
原创 数据结构与算法——线性表的顺序存储结构
为了确定记录在表中的位置,需要与给定元值进行比较的关键字的个数的期望值叫做查找算法的平均查找长度。2.平均查找长度ASL(Average Search Length)顺序表必须用连续空间,只能插入到最后一个元素后面。插入元素在最前面:从第一个元素开始向后移动。插入位置在中间: 从最后一个元素向后移动。ci 找到第i个记录需要比较的次数。时间复杂度: T(n)=O(n)时间复杂度T(n)=O(n)空间复杂度:S(n)=O(1)pi 第一个记录被查找的概率。
2022-10-17 20:45:30
618
5
原创 数据结构与算法——类C语言有关操作和补充
sqList;数组的静态分配}sqList;//顺序表类型数组的动态分配}sqList;//顺序表类型sqList;malloc(m):开辟m字节的长度地址空间,并返回这段空间的首地址。
2022-10-16 17:59:05
545
4
原创 数据结构与算法——线性表
线性表是具有相同特新的数据元素的一个有限序列。列如:同一线性表中的元素必定具有相同特性,数据元素间的关系是线性关系。线性表的例子;1.分析26个英文字母组成的英文表。2.分析学生情况登记表3.某单位历年拥有计算机的数量。
2022-10-15 15:23:09
758
19
原创 数据结构与算法——算法和算法分析
算法分析就是分析算法占用计算机资源的多少。计算机资源主要是cpu时间和内存空间,分析算法占用cpu时间的多少称为时间性能分析,分析算法占用内存空间的多少称为空间性能分析。算法分析的目的是分析算法的时间空间性能以便改进算法。
2022-10-11 09:28:13
654
4
原创 C语言——程序环境和预处理(下)
_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义这些预定义符号都是语言内置的。语法:#define reg register //为 register这个关键字,创建一个简短的名字;) //用更形象的符号来替换一种实现case //在写case语句的时候自动把 break写上。
2022-10-10 14:37:00
374
原创 C语言——程序环境和预处理(上)
程序同时也可以使用静态(static)内存,存储于静态内存中的变量在程序的整个执行过程 一直保留他们的值。在独立的环境中,程序 的载入必须由手工安排,也可能是通过可执行代码置入只读内存来完成。1. 预处理 选项 gcc -E test.c -o test.i 预处理完成之后就停下来,预处理之后产生的结果都放在test.i文件中。2. 编译 选项 gcc -S test.c 编译完成之后就停下来,结果保存在test.s中。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。2. 程序的执行便开始。
2022-10-10 14:12:06
120
原创 C语言——文件操作(下)
ANSIC 标准采用“缓冲文件系统”处理的数据文件的,所谓缓冲文件系统是指系统自动地在内存中为程序 中每一个正在使用的文件开辟一块“文件缓冲区”。如有整数10000,如果以ASCII码的形式输出到磁盘,则磁盘中占用5个字节(每个字符一个字节),而 二进制形式输出,则在磁盘上只占4个字节(VS2013测试)。数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件。这里可以得出一个结论: 因为有缓冲区的存在,C语言在操作文件的时候,需要做刷新缓冲区或者在文件操作结束的时候关闭文 件。
2022-10-10 11:31:48
107
原创 C语言——动态内存管理(下)
如果我们的代码是在一个给别人用的函数中,你在里面做了二次内存分配,并把整个结构体返回给 用户。所以,如果我们把结构体的内存以及其成员要的内存一次性分配好 了,并返回给用户一个结构体指针,用户做一次free就可以把所有的内存也给释放掉。实际上普通的局部变量是在栈区分配空间的,栈区的特点是在上面创建的变量出了作用域就销毁。4. 代码段:存放函数体(类成员函数和全局函数)的二进制代码。但是被static修饰的变量存放在数据段(静态区),数据段的特点是在上面创建的变量,直到程序结束才销毁所以生命周期变长。
2022-10-10 10:10:41
95
原创 C语言——动态内存管理(中)
切记: 动态开辟的空间一定要释放,并且正确释放。忘记释放不再使用的动态开辟的空间会造成内存泄漏。请问运行Test 函数会有什么样的结果?请问运行Test 函数会有什么样的结果?请问运行Test 函数会有什么样的结果?请问运行Test 函数会有什么样的结果?
2022-10-10 09:59:42
94
原创 C语言——动态内存管理(上)
情况2 当是情况2 的时候,原有空间之后没有足够多的空间时,扩展的方法是:在堆空间上另找一个合适大小 的连续空间来使用。有时候我们需要的空间大小在程序运行的时候才能知道, 那数组的编译时开辟空间的方式就不能满足了。与函数 malloc 的区别只在于 calloc 会在返回地址之前把申请的空间的每个字节初始化为全0。函数的功能是为 num 个大小为 size 的元素开辟一块空间,并且把空间的每个字节初始化为0。如果参数 ptr 指向的空间不是动态开辟的,那free函数的行为是未定义的。
2022-10-09 20:32:57
321
1
原创 C语言——自定义类型:结构体,枚举,联合(下)
位段的声明和结构是类似的,有两个不同:1.位段的成员必须是 int、unsigned int 或signed int。2.位段的成员名后边有一个冒号和一个数字。int _b:5;int _c:10;int _d:30;};A就是一个位段类型。那位段A的大小是多少?enum Day//星期{Mon,Tues,Wed,Thur,Fri,Sat,Sun};enum Sex//性别{MALE,FEMALE,SECRET};
2022-10-09 19:49:35
114
原创 C语言——自定义类型:结构体,枚举,联合(上)
有了结构体类型,那如何定义变量,其实很简单{int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明{//名字int age;//年龄};//初始化{int data;//结构体嵌套初始化//结构体嵌套初始化。
2022-10-09 19:05:49
378
1
原创 C语言——字符函数和字符串函数(上)
字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包 含 '\0' )。参数指向的字符串必须要以 '\0' 结束。注意函数的返回值为size_t,是无符号的( 易错 )学会strlen函数的模拟实现int main(){{}else{}return 0;}
2022-10-09 13:48:51
119
原创 C语言——指针的进阶(下)
如果你把函数的指针(地址)作为参数传递给另一个 函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数 的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进 行响应。1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。注意:这里第一次使用 void* 的指针,讲解 void* 的作用。2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地址。指针指向一个 数组 ,数组的元素都是 函数指针;
2022-10-08 21:44:46
524
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人