- 博客(27)
- 收藏
- 关注
原创 快速排序(hoare版本)
我们之前学习的多种排序,它们都有着不同的效率,可以适用与不同的场景,接下来要说的一种排序它叫做快速排序,从它的名字就可以看出来它的效率一定很高。一、快速排序的实现快速排序的实现就如图一样,先右边的开始走如果碰到比key值小的数值就在那个位置停下,然后左边开始执行,如果碰到比key值大的也同样停止,然后对两者进行交换。最后左和右相遇后将key和相遇的地方进行交换从而使得左边是比key小的值,右边是比key大的值,使用递归实现排序。
2024-10-25 23:16:28
478
原创 插入排序和希尔排序
我们应该学习过冒泡排序,排序的方式是有很多的,所以我们可以学习更多更为有效的排序。我们有着很多的排序方式,我们可以通过相应的环境来判断使用使用哪种排序,使用希尔排序时要记得注意起始位置时0还是gap,从而来判断end的值为什么,为了之后的多种情况,所以我们要熟悉多种排序方法。
2024-09-20 20:47:18
593
原创 堆排序的实现
我们通过堆的特性我们可以明白当堆创建成功后,堆顶的数据小堆就为最小,大堆就为最大,我们可以将堆顶的数和堆最后的数进行交换,此时再将剩下的数据继续创建堆,交换后最后只剩一个数就实现了排序。
2024-09-15 21:08:11
244
原创 堆的创建和说明
我们已经知道了二叉树的样子,但是一般的二叉树是没有什么意义的,所以我们会使用一些特殊的二叉树来进行实现,而堆就为特殊的二叉树来表示的。一、堆是什么?堆是一种特殊的二叉树,由完全二叉树来表示,分为小堆和大堆的表现形式,小堆的表现形式为父节点比孩子节点要小,下面的根节点同样满足这个条件,大堆与之相反,父节点要比孩子节点大,根节点同样满足条件
2024-08-01 22:57:54
614
原创 二叉树的基本知识
数据结构中的数就像它的名字一样,通过一个头节点进而分散出许多的叶子节点,而我们一般经常用到的是特殊的数,就是我们今天说到的二叉树,一个节点最多有两个叶子节点。一、树是什么像这张图一样,一个节点下有许多的子节点的就为树,但是这样的树意义不大,所以我们经常使用的是它的特殊形式二叉树,,那便是一个节点最多有两个叶子节点。
2024-07-29 01:25:22
439
原创 栈的模拟实现
栈的存储方式为后进先出LIFO(Last In Firet Out),我们可以将其理解为手枪的弹夹,放入子弹的过程叫压栈,出去的过程叫出栈。我们可以和我们之前创建出顺序表和链表的特性得出压栈和出栈适合的为尾插尾删,所以我们使用数组的方式来。
2024-07-16 22:32:24
290
原创 实现带头双向循环链表
就如同字面意思一样,我们会有一个不存放数据的哨兵位用来初始化,并且链表内的指针是互相指向对方,也就是说链表最后不会指向NULL,而会再次循环指向起点也就是哨兵位,哨兵位还有好处,因为我们通过哨兵位增加数据时不用直接修改自己的地址,所以不需要用到二级指针。
2024-07-15 21:48:40
890
原创 单链表的实现
链表是在逻辑上连续的数据结构,具体如图所示,在使用链表时是使用指针用来指向其下一个地址的位置,而地址并不是连续的,只是我们在逻辑想着为连续的,因此并不用向顺序表一样开辟多个空间,减少了相应的空间浪费。
2024-07-14 20:49:23
581
原创 通讯录(动态)
我们需要对上一次的初始化代码进行修改,使其动态开辟内存。使用malloc函数开辟空间,头文件为#include,具体开辟的个数由自己绝对,判断是否开辟成功后,记得指针指回原地址,并且改变其容量大小。
2024-07-07 22:10:51
347
原创 字符函数和字符串函数(下)
sep参数是个字符串,定义了用作分隔符的字符集合第一个参数指定一个字符串,它包含了0个或者多个由sep字符串中一个或者多个分隔符分割的标记。strtok函数找到str中的下一个标记,并将其用 \0 结尾,返回一个指向这个标记的指针。strtok函数的第一个参数不为 NULL ,函数将找到str中第一个标记,strtok函数将保存它在字符串中的位置。
2024-07-05 20:33:57
353
原创 字符函数和字符串函数(中)
将源的前num个字符追加到目标,再加上一个终止的null字符。如果源中的C字符串的长度小于num,则只有终止之前的内容空字符被复制。返回指向str1中第一个出现的str2的指针,如果str2不是的一部分,则返回null指针str1。相同返回0,str1小于str2返回负数,str1大于str2返回正数。比较到出现另个字符不一样或者一个字符串结束或者num个字符全部比较完。,则拷贝完源字符串之后,在目标的后边追加。拷贝num个字符串复制到目标空间。如果源字符串的长度小于。
2024-07-04 20:59:52
351
原创 浮点数的存储规则
EEE 754也有一些特别的规定,就是M可以写为1.xxxxxxx的形式,所在计算机内部保存M时,默认这个数的第一位总是1,因此可以被舍去,只保存后面的xxxxxx部分。例如保存1.001时只保存001等到读取的时候,再把第一位的1加上去。这样做的目的,是节省1位有效数字。
2024-07-02 20:38:47
2118
原创 大端、小端存储
32 位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题。因 此就导致了大端存储模式和小端存储模式。因为在计算机系统中,是以字节为单位的,每个地址单元 都对应着一个字节,一个字节为8 bit。大端存储:是指将数据低位放于高地址中,将数据高位放于低地址中。小端存储:是指将数据低位放于低地址中,将数据高位放于高地址中。在不同的环境下,所使用的是大小端有可能不同。型(要看具体的编器),另外,对于位数大于。short 型,32 bit。
2024-07-01 21:24:13
300
1
原创 c语言中数据的存储(整型)
数据的类型一般有整形、字符型、浮点型这几种类型,而想要充分理解代码的运行,还需要理解数据在内存中存储,就先理解我们经常使用的整型类型的存储方式。
2024-07-01 20:06:26
224
原创 初始C语言
因为刚刚学习对于公司还是比较模糊,目标希望是大厂,但目前不现实,目前首先完成专升本考试。我的目前目标是完成专升本考试,提升自己的学历,使自己的机会可以增加。目前打算在学习其他科目的基础上,每周十二小时学习c语言,并进行练习。我是一名大学专科的学生,目前在运城职业技术大学就学。这是第一篇博客,之后定会精益求精。
2023-10-11 11:04:46
31
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人