- 博客(16)
- 问答 (1)
- 收藏
- 关注
原创 浅谈跳表(没有代码,都是理论)
对于每一层都是一个有序的单链表,删除一个元素的时间复杂度为O(1),而整个索引通过之前的推论可知有logn层,所以最多需要删除logn个元素,而查找的时间复杂度为O(logn),所以总的时间为O(logn)+O(logn)=2O(logn),抛弃常数后,时间复杂度为O(logn)首先来看看索引的层数:由于我们是每两个元素会抽一个元素作为高一层的索引,那么原始链表有n个元素,第一层索引有n/2个元素,第二次有n/4个元素,依次递推,第n层有n/2k 元素。这样的话,每次的插入的时间复杂度变成了O(n).
2023-06-20 21:01:46
428
原创 DELL dell inspiron15 5510 装Ubuntu后进入不了window
DELL dell inspiron15 5510 装Ubuntu后进入不了window!
2022-05-13 15:11:15
2839
原创 myshell :实现自己的shell
目录功能:负一 框架一.print()二.get_cmd() 获取切割输入的命令四. void cmd_cd(char *arglist[256]);五. do_cmd,cmd_cdx,cmd_pipe,三个重头函数。六. 实现历史命令查看还有tab补全 ⑦。code功能:实现 管道 (也就是 |) 实现 输入输出重定向(也就是 < > >>) 实现 后台运行(也就是 & ) 实现 cd,要求支持能切换到绝对路径,相...
2022-05-06 16:50:41
1649
原创 my_ls 实现LINUX ls命令的i,s,a,l,t,r,R
首先引用维基百科对ls的定义:ls命令在类unix操作系统中被用于显示文件夹中的内容。ls即list,英文表示为"list directory contents"。当我们使用Linux时不可避免的使用ls命令,通过自己的敲码,学长的帮助与网上的翻阅资料,本文通过C语言粗略的实现ls的部分功能。如有不足,欢迎指出。.^_^.目标实现内容:实现 ls 的 -a、-l、-R、-t、-r、-i、-s 参数,并允许这些参数任意组合. -R 需要通对 / 的遍历测试 界面美观(输出对齐、与颜色显...
2022-03-19 16:58:11
1487
3
原创 DFS与BFS简单原理
图是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或联系。对象由顶点(V)表示,而对象之间的关系或者关联则通过图的边(E)来表示。图可以分为有向图和无向图,一般用G=(V,E)来表示图。经常用邻接矩阵或者邻接表来描述一副图。在图的基本算法中,最初需要接触的就是图的遍历算法,根据访问节点的顺序,可分为广度优先搜索(BFS)和深度优先搜索(DFS)。目录Dfs( 深度优先搜索)BFS(广度优先搜索)Dfs( 深度优先搜索)顾名思义,在一张图中,他优先考虑的是图...
2022-02-15 10:38:31
367
原创 判断素数好方法——埃拉托斯特尼筛和线性筛
1.对于判断比较少的个数或比较小的数值时普通的判断素数的方法即可了,类似:int judge(int n){ int i,flag=1; for(i=2;i<=sqrt(n);i++) { if(n%i==0) { flag=0; break; } } return flag; //flag=1为素数,0为非素数}...
2022-02-07 19:57:43
784
原创 linux 超基础命令(入门)
文章目录1.命令帮助信息--help像git --help显示命令的帮助信息manman 是 manual 的缩写,是 Linux 提供的一个 手册,包含了绝大部分的命令、函数的详细使用,可查询命令的使用。man man2.查看目录内容 lsls 是英文单词 list 的简写,用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录).其基本的用法如下:ls -a //(显示所有文件与目录)(开头为.的隐藏文件也会显示...
2022-02-01 13:49:32
1975
6
原创 git 的基本命令(手把手)
写在前面: 为什么要使用GIT?《Git权威指南》给出了答案● 异地协同工作● 现场版本控制● 重写提交说明● 无尽的后悔药● 更好用的提交列表● 更好的差异比较● 工作进度保存● 作为SVN前端实现移动办公● 无处不在的分页器● 快一.安装与配置以Ubuntu为例。安装只需在命令行输入:sudo apt-get install git安装完成后进行git配置,输入指令git config --globa...
2022-01-22 15:47:17
1944
8
原创 Linux下 gcc 的使用(一看就会系列)
写在前面:gcc是“GNU Compiler Collection”的缩写,从字面意思可以知道它是一个编译器集。gcc不止可以编译器c语言,还能用于c++,java,object-C等语言程序。但是在这里,我们的嵌入式学习中,目前只去关注gcc在C语言方面的编译功能。1.gcc的安装(以Ubuntu为例) sudo apt-get install build-essential安装完后可以通过 gcc --version 查看版本。让我们在通过gcc编译可执行文件的过程中掌握其基础应.
2022-01-02 16:49:04
11944
14
原创 大数相乘(高精度)(一看就会系列)
在之前一篇的大数相加中我们有了大致了解,对于大数相乘,二者之间即有相同之处,也有不同的地方。同:1.都需要字符数组存储。2.都得倒序。3.都得考虑进位的问题。dd异:1.例如考虑进位时不仅有乘积进位,还可能有加法进位。2.存储结果的数组的容量应为两字符数组长度之和或加1.dd#include <stdio.h>#include <string.h>main(){ char a[200]; char b[200]; i
2021-12-31 16:41:37
998
7
原创 A+B problem (高精度大数相加)
在日常生活中我们经常会遇到两数相加的问题,但是当两数的范围都超过了整型,甚至是long long 型的存储范围。 那么我们就不能用简单的直接相加了。1.对于很长的一段数字我们稍加思索,应该能想到用一个字符数组来存储。2.对于两个数存储以后如果要进行逐位相加,根据我们学过的小学数学O(∩_∩)O哈哈~,应该从低位开始相加。 所以对于两个字符数组我们应该翻转一下,从个位为a[0];翻转字符串。3.另外,还得判断一下两数的长度,最后得出来数的长度为较长的数或较长的数加1(最高位相加要不要进一的..
2021-12-31 15:54:02
670
1
原创 vim的使用(必看)
前言: Vim是Linux系统中常用的一种编辑器,类似于windows系统下的记事本,常用于编辑文件内容和保存文件,是所有Unix及Linux系统下标准的编辑器,它就类似于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。第一次上手,你可能连最简单的增删查改都做不了,话不多说让我们进入对vim的使用目录1.了解三种模式。 1.命令行模式 2.插入模式 3.底行模式2.进入vim 打开文件。3.如何移动光标。4文件的输入1....
2021-12-28 15:05:37
8394
4
原创 PTA 6-5 说反话-加强版 (C)(通俗易懂还有图解)
要求: 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。输出格式:每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。输入样例:Hello World Here I Come输出样例:Come I Here World Hello...
2021-12-16 20:32:39
451
2
空空如也
C语言结构体内存相关问题。
2022-01-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人