自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构与算法(4)

在待排序数据中先找一个标杆位置p,备份p位置的值val,记录左标杆l、右标杆r,l从p的左边找比val大的数,找到后赋值给p位置,更新p到l,然后r从p的右边找比val小的数,找到后赋值给p位置,更新p到r。把数据看成两个部分,前部分是有序的,把剩余部分的数据逐个往前比较,如果比前面的数小,前面的数往后移动一位,继续往前比较,直到遇到更小的数,那么该数据的后一个位置即为可以插入的位置。对千每种情况下所应执行的操作,在算法中都有确切的规定,不会产生二义性, 使算法的执行者或阅读者都能明确其含义及如何执行。

2023-09-05 20:00:00 45

原创 数据结构与算法(3)

完全二叉树: 深度为k,有n个节点的二叉树当且仅当其每一个节点都与深度为k的满二叉树中编号从1到n的节点一一对应时,称为完全二叉树。是一种自平衡的二叉树,但不是严格遵循高度差不超过1原则,是一种伪平衡的二叉树,是通过节点的高度以及节点的颜色来达到相对平衡的状态。是一种完全二叉树,把待比较的数据存储在最后一层,根节点是左右子树中的其中一个,是他们的最大或最小值,不停地比较形成一棵选择树。2、从F中选取根节点的权值最小的两个节点,作为左右子树构建成一棵新的二叉树,把左右子树的权值之和作为该树的根节点的权值。

2023-09-05 10:30:00 46

原创 数据结构与算法(2)

链表的最后一个节点的next不指向NULL,而是指向第一个节点,这种链表称为循环链表,如果是单链表则称为单循环链表,好处是可以在任意一个节点开始遍历整个链表。注意:封装的是带头节点的双链表,不然的话插入、删除操作可能会改变head的指向,处理起来就需要分情况其麻烦,因此带头节点不需要考虑以上情况。注意:双向链表一般会实现为双向循环链表,最后一个节点的next指向第一个节点,第一个节点的prev指向最后一个节点。节点的直接节点称为该节点的子节点,该节点就是它们子节点的父节点。

2023-09-04 18:48:51 35 1

原创 数据结构与算法(1)

数据元素存储在彼此独立的内存空间中,每个独立的元素称为节点,每个节点中额外增加一块指针域,通过该指针可以指向下一个与该节点有关系的节点,以此来表示数据节点之间的关系。定义:第一个节点作为头节点,数据域不使用不存储有效数据,它的指针域永远指向链表的第一个有效数据节点,就算链表长度为0,头节点依然存在。数据元素是存储在连续的内存中,用数据元素的相对位置来表示数据元素之间的关系,内存空间是连续的,并且数据元素之间也要确保连续。优点:对节点的删除、插入操作效率高,实现简单,适合增删数据操作,对内存空间的要求较低。

2023-09-01 18:40:35 46 1

原创 c语言学习(6)

情况1:需要输入的是整型\浮点型时,而缓冲区中的数据是字符型或符号时,此时读取会失败,并且该数据会继续残留在输入缓冲区中,会继续影响剩下的输入。情况3:当先输入整型或浮点型,再输入字符型时,输入完整型或浮点型后按下的回车或空格,会残留在输入缓冲区,刚好被后面的字符型接收,影响输入。普通函数:是一段觉有某项功能的代码集合,会被编译成二进制指令存储在代码段中,函数名就是它的首地址,有独立的栈内存。假如a.h包含了b.h的内容,而b.h中又包含了a.h的内容,这时就会产生头文件的相互包含,无法编译通过。

2023-08-13 21:16:01 170

原创 c语言学习(5)

指针是一种特殊的数据类型,使用它可以定义指针变量,指针变量中存储的是整型数据,该数据代表了内存的编号(地址),可以通过这个编号访问到对应的内存。指针变量有自己的存储空间,它与内存之间是指向关系,如果它存储了数组的首地址时,那么指针可以当做数组使用,同时数组名也可以当做指针使用。数组名是一种特殊的"指针",它与数组在内存中的首地址之间存在映射关系,它没有自己的存储空间,数组名是常量,不能修改它所代表的值。2、指针变量的类型表示它存储的是什么类型变量的地址,它决定了通过该指针变量能够连续访问的字节数。

2023-08-04 00:19:29 45 1

原创 c语言学习(4)

C语言标准委员会以函数形式提供的一些基础功能,都被封装在libc.so库中,并且分在了不同的文件中,需要使用时只要把对应的头文件导入即可(例如stdio.h...),然后通过具体的 函数名(参数) 即可完成调用。随着CPU的位数的不断增加,已经到目前的64位,所以八进制不再能够满足需求,因此发展出现在的为目前的CPU只能识别高低两种电平,只能对二进制数据进行计算。让数据从高位n位开始,数据 - 2^(n-1) ,如果够减,那么第n位为1,否则为0,直到减完为止。

2023-07-16 23:12:26 66 1

原创 c语言学习(3)

特点:在代码编译期间数组的长度是不确定的,当执行到数组的定义语句时长度才最终确定下来,并且一旦确定长度也无法改变。7、如果有初始化数据,则可以省略数组数量,因为编译器会自动统计数据的个数,然后确定数组的数量。for循环一般会使用一个变量来引导循环的进行,这个变量叫做该循环的循环变量 i index。遍历:一般需要与双层for循环配合,外层循环负责遍历行,内层循环负责遍历列。[3]、改变循环变量的值,防止出现死循环,一般对循环变量自加或自减。2、跳出循环,但如果有循环嵌套时,只能跳出最近的一层循环。

2023-07-10 20:20:33 59 1

原创 c语言学习2

字符就是图案或符号,字符在内存中依然存储成整数,需要显示成字符时,操作系统会根据ASCII码表中的对应关系把整数显示成对应的符号或图案。先有的C语言后有的bool类型,C语言中不可能有真正的布尔类型,都是在中对布尔类型使用整数进行模拟。特殊特例:当运算对象类型只是 char或者short,且类型不同,编译器会做类型提升,提升为int再运算。unsigned int 4 0~40亿。只有相同类型的数据才能进行运算,如果类型不相同的数据需要先转换成相同的类型才能运算。

2023-07-10 00:04:09 32 1

原创 c语言学习(1)

程序员所编写的代码都不是标准的C代码,需要一段程序翻译成标准C代码,负责翻译的程序叫做预处理器,翻译的过程叫做预处理,被翻译的语句叫做预处理指令,以#开头的语句都是预处理指令。C语言是专门为了编写操作系统而诞生的语言,天生适合对硬件编程,以运行速度快而著称,而且C语言非常适合编写数据结构和算法。main函数是由操作系统调用,所以它的返回值给了操作系统,反应了程序是如何结束的。头文件:以.h结尾,里面存储的是一些辅助性的代码,绝大多数都是函数的声明。gcc -c xxx.s 生成以.o结尾的目标文件。

2023-07-07 22:10:24 27 1

空空如也

空空如也

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

TA关注的人

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