- 博客(28)
- 收藏
- 关注
原创 快速排序的基本思想(图文详解)
快速排序算法通过多次比较和交换来实现排序,其排序流程如下:(1)首先设定一个分界值,通过该分界值将数组分成左右两部分。(2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于分界值,而右边部分中各元素都大于或等于分界值。(3)然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理。(4)重复上述过程,可以看出,这是一个递归定义。
2023-03-12 18:04:09 6445 12
原创 【数据结构】二叉树的基本操作中的一些易错点
笔者整理出了一些关于萌新在入门二叉树时容易犯的一些错误,你也来试试自己会不会掉到这些坑里把~以上就是笔者对二叉树递归里的一些易错点的记录。代码纯手打,可能存在漏洞、瑕疵。如发现欢迎指正!
2023-03-05 15:45:04 1957 17
原创 题解:牛客网OR36 链表的回文结构
对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true。
2023-01-09 09:47:04 221
原创 【C语言】-程序环境和预处理指令
我们的代码运行出来,变为我们人眼可以看到的结果的这个过程会经过两个过程。一、程序的翻译环境:在这个环境中,源代码会变成可以执行的机器指令。这个过程就是把我们人能看懂的语言转换成机器能看懂的语言。二、程序的执行环境:用于实际执行代码。具体步骤如上图第一步、预编译1.包含头文件#include。例如我们包含了#include,那么我们在预编译阶段就会把#include里的代码全都载入到我们编写的程序里面。2.注释的删除。我们写的注释在这个时候全都会被删除掉。
2022-11-17 23:43:27 761 4
原创 【C语言】-文件操作
我们在入门时敲代码的过程中,我们发现,当我们启动程序后输入的数据在下一次运行的时候就没有了。举个形象点的例子就是,我们玩小游戏时,妈妈叫我们去吃饭,这时候我们退出了游戏,下次登陆游戏后我们又要从第一关开始玩,这是很蛋疼的,那么为了解决这个问题,我们就引入了文件操作。,
2022-11-06 18:29:53 554 20
原创 【C语言】-动态内存管理
为什么存在动态内存分配?我们学习过变量,学习过数组。但是我们知道,我们声明变量时,例如int型变量,它其实是在栈上开辟了4个字节的空间,当我们声明长度为10,类型为int型的数组时,它其实是在栈上开辟了40个字节的空间,一旦我们实现开辟好,那么就面临一个问题,这个空间多了还是少了?用不用的完?用不完会造成空间浪费,而少了会导致内存溢出。这时候,动态内存分配就起到了作用。
2022-11-04 17:34:54 574 19
原创 【C语言】-字符串函数和内存函数(下)
笔者从cplusplus.com找到关于strcmp函数的文档。接收:两个字符串指针返回:整型作用:比较两个字符串的大小,它会根据你传进去的两个指针,同步向后偏移,一直偏移到两个字符串相同位置上的ASCII码值不同时,返回对应value。(value
2022-10-17 21:34:54 688 25
原创 【C语言】-字符串函数和内存函数(上)
重点介绍字符串和字符串函数的使用及注意事项。我们从cplusplus.com网站上搜寻到strlen函数的介绍我们需要注意这个函数接收的数据类型和返回的数据类型。接收:字符串指针返回:unsigned int类型的数据函数功能:计算’\0’前的字符串的长度。起始位置是str指向的那个元素。我们从cplusplus.com网站上搜寻到strlen函数的介绍如下图接收:第一个接收的参数是目标字符串,第二个接收的参数是源字符串。由于源字符串一般不进行修改,故用const修饰。
2022-10-15 23:42:42 577 44
原创 【c语言】-指针进阶(下)
指针的学习已经接近尾声了,指针进阶(下)的内容少,但是很重要,它就是回调函数,回调函数在指针里占有非常重要的地位。是指针的重点。定义:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。怎么通俗的理解这段话呢。
2022-09-28 20:12:29 696 16
原创 【c语言】-指针进阶(上)
指针是c语言的精华,我们之前已经学习了c语言的初阶指针,对初阶指针有了一个大概的了解:1.指针就是一个变量,是用来存放地址的,一个地址唯一标识一块内存空间,可以通过这个地址来访问这个对应内存空间的数据2.指针的大小是固定的4/8个字节(32位平台下是4个字节,64位平台下是8个字节。同时我们平时通常看到的是x86,其实就是32位平台,只是以前的叫法,被沿用至今。x64就是64位平台,可千万不能以为x86就是86位平台)
2022-09-24 00:44:22 940 39
原创 【c语言】数据在内存中的存储
我们以及学习了许多数据类型,例如char short int float double,那么你知道这些数据是如何在内存中存储的吗?
2022-09-22 01:27:29 915 43
原创 【C语言】-初级指针
很多人说指针是c语言的精华,是c语言最抽象最难懂的地方。但是事实上c语言指针就并没有那么抽象,用通俗的例子来说,指针就类似于一个人的家庭住址。
2022-08-27 10:51:30 902 11
原创 C语言-数组
这里我将 数组的初始化方式举例(一维数组):这样创建出来的数组是这样的它将1,2,3赋给前面三个空间后,后面七个空间自动赋值为0;赋值结果为这里我们可以看出,这样赋值得到的是通过后面我们给出的值而分配的数组长度。我们只给了四个值,那么数组就只分配了四个空间。赋值结果为我们可以看到这样赋值数组会自动将字符一个一个拆开放入数组中,并且会在最后一个字符后面再放入一个’\0‘,这个字符是数组结束的标志。...
2022-08-03 10:18:34 4680 6
原创 C语言-函数
函数是一组一起执行一个任务的语句。每个C程序都至少有一个函数,即主函数main(),所有简单的程序都可以定义其他额外的函数。您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。C标准库提供了大量的程序可以调用的内置函数。例如,函数strcat()用来连接两个字符串,函数memcpy()用来复制内存到另一个位置。函数的组成。...
2022-07-29 22:24:39 1677
原创 C语言-分支语句
表达式语句函数调用语句控制语句复合语句空语句控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。可分成以下三类条件判断语句也叫分支语句if语句、switch语句;循环执行语句dowhile语句、while语句、for语句;转向语句break语句、goto语句、continue语句、return语句。这篇博客介绍了分支语句(if语句和switch语句)...
2022-07-21 08:48:49 602 8
原创 【数据结构】链栈的基本操作
文章目录前言一、初始化栈二、销毁栈三、判断栈是否为空四、进栈/压栈五、出栈六、取栈顶元素总结前言链栈的基本操作包括:1.初始化栈。2.销毁栈。3.判断栈是否为空。4.进栈5.出栈。6.取栈顶元素。在此之前我们先定义好链栈的数据类型typedef int ElemType;typedef struct linknode { ElemType data; struct linknode* next;}LinkStNode;一、初始化栈//初始化栈void InitStack(LinkS
2022-05-09 12:28:59 5396 4
原创 【数据结构】栈的基本操作
文章目录前言一、初始化栈二、销毁栈三、判断栈是否为空四、进栈五、出栈六、取栈顶元素总结前言栈的基本操作有1.初始化栈2.销毁栈3.判断栈是否为空4.进栈5.出栈6.取栈顶元素首先定义好栈的数据类型typedef int ElemType; typedef struct { ElemType data[MaxSize]; inttop; }SqStack;一、初始化栈void InitStack(SqStack*& s) { s = (SqStack*)malloc(si
2022-05-07 17:27:38 4696
原创 【数据结构】单链表的基本操作
文章目录一、单链表的操作二、具体代码(不可运行,非完整代码!)总结一、单链表的操作1.头插法建立单链表。2.尾插法建立单链表3.初始化单链表、4.销毁单链表、5.判断单链表是否为空表。6.求单链表的长度。7.输出单链表。8.求单链表中的某个数据元素值。9.按元素值查找。10.插入数据元素.11.删除数据元素二、具体代码(不可运行,非完整代码!)代码如下:typedef int ElemType;typedef struct Lnode{ ElemType data; struct Lnod
2022-05-06 21:07:38 2761 1
原创 【数据结构】:实现顺序表各种基本运算的算法
文章目录目的内容二、详细代码运行结果目的领会顺序表存储结构和掌握顺序表中各种基本运算算法设计。内容编写一个程序sqlist.cpp,实现顺序表的各种基本运算和整体建表算法(假设顺序表的元素类型ElemType为char),并在此基础上设计一个主程序,完成如下功能:初始化顺序表L依次插入a,b,c,d,e元素输出顺序表L输出顺序表L长度判断顺序表是否为空输出顺序表L的第3个元素输出元素a的位置在第4个元素位置上插入f元素输出顺序表L删除顺序表L的第3个元素输出顺序表L释放顺
2022-04-24 01:03:13 14547 10
原创 指针类型作用详解(二):不同指针类型进行整数加减时的步长不同
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、指针类型的作用(二)二、不同类型指针变量进行整数加减操作实例总结前言指针指向的是一个变量存储的地址,那么在c语言中,不同类型的指针有什么作用?比如:int型指针、char型指针、double型指针一、指针类型的作用(二)当不同指针类型进行整数加减操作时,操作的结果不同;下面通过int 型指针和char型指针对指针类型的指针加减类型的操作不同进行解释二、不同类型指针变量进行整数加减操作实例我们可以看到:.
2022-04-14 22:24:04 1494 17
原创 指针类型作用详解(一):不同指针类型的访问范围不同
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、指针类型的作用二、int型指针类型与char型指针类型int型指针类型2.char型指针类型总结前言指针指向的是一个变量存储的地址,那么在c语言中,不同类型的指针有什么作用?比如:int型指针、char型指针、double型指针一、指针类型的作用指针类型决定了指针进行解引用操作时,访问空间的大小。(解引用:“*”的作用是引用指针指向的变量值,就好像根据一个人的家庭地址一样找到一个人,解引用通过地址找到地址对应的.
2022-04-14 21:20:00 3250 2
原创 【数据类型转换】将128强制转换为byte为何得到的是-128?
文章目录前言一、原码、反码、补码二、为何128会转换为-1281.int型数据128的表示形式2.对应为-128的byte型数据总结前言当把一个int型常量赋值给一个byte、short和char类型变量时,会造成精度损失。例如:将常量128强制转换为byte型,我们知道byte表示的数的范围是-128~127,通过输出我们知道,转换后的值为-128.接下来我通过形象的方式对这个结果进行解释。为了完整了解结果的由来我们要先了解计算机的二进制方面的知识一、原码、反码、补码以byte为例:对计
2022-04-09 15:50:47 2823 1
原创 文件运行出现乱码问题的解决方法
文章目录前言一、出现乱码的现象举例子二、解决办法更正后的运行结果总结与知识讲解前言当你用cmd对编译好的java字节码文件运行时,对于一些编码时写好的正常符号或文字变成一堆乱码的问题,给出的解决方案。`一、出现乱码的现象举例子当我们编译时是这样的而当我们运行时如下:我们通过编译的代码和运行结果比较得出“你好中国”变成了一堆看不懂的字二、解决办法当我们来到编写好代码后的保存界面我们可以看到此时我们的编码是UTF-8,此时我们把UTF-8修改为ANSI进行保存然后对该文件进行编译
2022-04-08 19:50:19 8562 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人