自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [C++]类和对象(下)

我们紧接着上一章的部分进行讲解。

2024-09-17 12:06:25 838

原创 [C++]类和对象(上)

目录1.类的定义1.类定义的格式2.访问限定符3.类域2.实例化1.实例化的概念2.实例化的对象大小3.this指针3.类的默认成员函数1.构造函数2.析构函数3.拷贝构造函数类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。我们这里以栈Stack为例,创建一个名为Stack的类,再来实现其的基本用法。

2024-09-16 11:17:14 1190

原创 [数据结构]二叉搜索树

今天我们来学习一下新的数据结构,二叉搜索树,这个结构比较简单,是一个铺垫式的结构,为之后的平衡二叉树,AVL树以及红黑树做一个知识基础,我们将从概念到实现具体的介绍二叉搜索树。

2024-09-15 11:59:30 1000

原创 [排序]归并排序

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。我们先看一下归并排序的动态图。

2024-07-24 11:40:17 819

原创 [排序]快速排序——前后指针法(含非递归实现快排)

上一章我们具体介绍了hoare快速排序的具体实现,本篇我们将介绍快速排序的前后指针法来实现,与hoare快排的排序算法逻辑相似大同小异,本章我们还会实现非递归实现快速排序,希望能帮助到大家。

2024-07-23 13:10:42 441

原创 [排序]hoare快速排序

今天我们继续来讲排序部分,顾名思义,快速排序是一种特别高效的排序方法,在C语言中qsort函数,底层便是用快排所实现的,快排适用于各个项目中,特别的实用,下面我们就由浅入深的全面刨析快速排序。事先声明,快速排序有不同的版本,今天我们讲的是hoare的版本目录快排的定义hoare快排的具体实现快排的时间复杂度优化快速排序三数取中小区间优化相遇位置比key小的问题快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割

2024-07-22 20:50:44 958

原创 [C++]入门基础(2)

引用不是新定义⼀个变量,而是给已存在变量取了⼀个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同⼀块内存空间。引用的使用即类型& 引用别名 = 引用对象注意:C++中为了避免引入太多的运算符,会复用C语言的⼀些符号,比如前前的<< 和 >>,这里引用也和取地址使用了同⼀个符号&。大家一定要分清楚用法,不要混淆了!我们可以通过一个代码更为清晰的了解,引用和变量的关系。

2024-07-14 20:01:15 729

原创 [C++]入门基础(1)

定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。如图所示,我们自己创建了一个命名空间lmd,里面可以放变量,函数,以及创建的结构体类型namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下⾯的rand不在冲突了。我们可以试着解决一下,刚才函数名和变量名冲突的问题很显然这个问题以及解决了。

2024-07-08 22:06:16 759 1

原创 【排序】插入排序,希尔排序

以上是对插入排序和希尔排序的分析,是一种新的排序思想,其中的种种知识点也很碎很多,希望大家能够有所收获。

2024-06-04 13:27:26 813 4

原创 【排序】选择排序(含优化版)

冒泡排序的时间复杂度为O(n^2),其中n是要排序的元素数量。这是因为冒泡排序需要进行多次遍历,每次遍历都需要比较和交换元素。因此,对于大规模数据的排序,冒泡排序可能不是最有效的选择。选择排序的时间复杂度也是O(n^2),但它的性能通常优于冒泡排序。因为选择排序只需要进行一次遍历,并且只需要进行一次比较和交换操作。因此,在处理大规模数据时,选择排序通常更为高效。但如果遇到已经排好序的数据,冒泡排序只需要循环一次就能发现,并终止,但选择排序却需要继续遍历数组,在这一点上选择排序的效率是不如冒泡排序的。

2024-06-02 12:20:30 949 3

原创 【排序】冒泡排序

在我们的生活中,到处都离不开排序的作用,考试分数要排序,商场购物要排序,可以说排序对我们来说处处存在,那么从本章开始,我将要依次分享一些排序方法,从易到难,包括冒泡,插入,快速,希尔,选择等排序方法,希望大家能够支持。

2024-05-31 12:03:11 639 1

原创 数据结构——二叉树的基本应用

二叉树的基本应用,还是比较复杂的,大多要使用递归实现,个别还需要用到队列的知识,因此我们需要掌握递归的原理,若不理解递归过程,可以通过画递归展开图的方式去理解,一定要将每一个函数接口给理解清楚,此类问题需要我们不断的练习和复习,才能将二叉树的知识巩固住,希望本篇文章能够帮助到你。

2024-05-28 20:37:16 1093 4

原创 二叉树基础OJ题目

二叉树的基本问题,很多都是利用递归原理去实现的,这个是双路递归,即进行两个方向的递归,我们需要清楚的理解递归逻辑,如果无法理解递归,那么就花一些时间,画出递归的展开图去理解,多次下来就能提高对递归的认识,与此同时,要及时的去复习和巩固。

2024-05-24 10:39:11 766 5

原创 数据结构——堆的时间复杂度推导及topk问题

本篇文章,我们推到了向下调整建堆算法和向上调整建堆的时间复杂度,还有堆的topk问题,我们从逻辑方面,用数学公式详细的介绍了算法时间复杂度,希望本篇文章能帮助到正在努力的你。2%5E0&plus;2%5E1&plus;2%5E2&plus;...&plus;2%5E2&plus;...&plus;

2024-05-21 15:40:02 1240 2

原创 数据结构——(完全二叉树)堆

本章我们介绍了树的基本概念,二叉树,堆的实现,以及最重要的堆排序,向上调整算法,向下调整算法。我很清楚进入树的领域后,数据结构的难度会骤然上升,不过如果不挑战自己,又怎能进步呢,路漫漫其修远兮,吾将上下而求索,希望这篇文章能帮助到你,共同进步!

2024-05-16 21:04:43 983 2

原创 数据结构——栈和队列的互相实现

这两道题目的代码实现都不难,由于我们有直接的函数可以使用,重点在于逻辑的设计。两道题的核心就在于用两个对象来实现相互的基本用法,而重点都在于删除数据,这需要我们认真的思考,去吸收这个思路,便于在以后遇到类似题目时想到这类方法,尤其是第二道题的第二个思路,希望这篇文章能够帮助到你!

2024-05-13 17:47:30 919 2

原创 数据结构——队列(附环形队列问题)

以上就是队列的基本用法和环形链表的实现,相对来说并不难,逻辑和代码的实现都比较清晰简单,希望大家能够掌握队列的知识。

2024-05-11 16:08:46 887 5

原创 栈的基本用法

总体来说,栈的实现是比较简单的,相比于之前的单链表和双向链表,由于栈是由顺序表实现,所以我们感觉更为简单,总而言之,如果你的顺序表掌握的不错,那么栈你一定可以理解,希望这篇文章对你有所帮助!

2024-05-10 15:00:33 583

原创 数据结构——顺序表

顺序表的实现,相对容易,代码和逻辑都比较简单,这只是数据结构的基础,希望这篇文章可以让你清晰的掌握顺序表的结构与逻辑!

2024-05-08 14:39:26 1077 1

原创 贪吃蛇(C语言实现)

我们将其封装在WelcomeToGame()函数中,我们利用set_pos定位光标的位置,按照示例进行打印提示信息,这里的set_pos和wprintf我们之前已经解释过了,这里介绍一下system("pause")和system("cls")system(pause)的作用就是暂停,效果如下可以让我们的程序暂停,让玩家,观看字幕system("cls")的作用是清理程序屏幕上的所有打印字符,如果不清屏,会导致各种的文字出现了就不消失,会影响程序的效果。

2024-05-06 17:46:48 931 2

原创 链表经典题目(1)

第一道题,希望大家理解快慢指针追击的条件思路第二道题,希望大家理解为什么相遇点和头节点距离入环点相等第三道题,希望大家理解将拷贝节点插入到原节点后的解题思路以上就是三道经典链表OJ题的解法与深度拓展,希望大家能通过这篇文章有所收获,在逻辑思维能力和代码能力有所进步。

2024-04-30 16:50:33 475 1

原创 双向链表的基本应用

二级指针的基本用法就已经讲完了,相比于单链表,他的结构更加复杂,但使用也变得更加方便,同时,哨兵位的使用也是我们新接触的东西,他的存在使我们的代码量大大减少,希望大家好好理解,有所收获。

2024-04-29 15:47:12 779 2

原创 单链表的基本应用

头节点的删除,意味着需要删除头节点的同时,将下一个节点作为新的头节点,否则链表就找不到了,而删除链表节点,就用malloc对应的free函数,用一个变量记头节点的next作为新的头节点,然后将头节点free掉,不要忘了将其置空,虽然不影响大局,但是好的习惯就在平常养成~在寻找尾节点时,用while循环,可以用cur直接作为判断条件,走到NULL,循环终止,但此时无法找到尾节点的位置,因此我们需要一个prev变量记录cur的前一个位置。链表分为单向,双向,带环,不带环,带头,无头的链表。

2024-04-27 15:13:08 573 2

原创 C语言的三种循环语句的一些知识

1.while()循环,while循环是我接触的第一个循环,他的运行条件和if语句十分相似,先进行判断,结果为真就进入循环,结果为假,就跳过循环。如果仅仅是为了判断那么循环就没那么大的作用了,while循环需要有调整的过程,有调整的过程才会使循环变得多彩,例如打印1~10的数字。通过学习,我学习了C语言的三种循环语句,分别为for循环语句,while循环语句,do-while循环语句,三个循环语句各有特点,且几乎可以相互转换,但需要根据实际情况,选择更为合理的一种语句,我对此进行自我总结,如下所述。

2023-11-30 15:28:11 123

原创 Introduce myself

实话实说,我觉得我对我这个专业挺满意的,让我从一穷二白的编程小白,从hello world!Hello,大家好,我是来自河南的一个大一新生,学的专业是软件工程,我的学校也不过是个夹在一本与二本之间的学校,尽管我的学校并不是特别的好,但是我拥有自律的习惯,自开学以来,天天基本大多时间都在图书馆里学习,可能是我刚接触编程吧,我感觉挺有意思的,越学越开心,C语言是我们大一必修的基础,到大二之后开始区分不同的学习方向例如Java,python,以及C++等方向。

2023-11-24 19:21:50 43

765797782556029Apk Extractor.apk

765797782556029Apk Extractor.apk

2023-10-26

空空如也

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

TA关注的人

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