自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++】类和对象(中)

只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。

2023-10-30 13:07:58 127

原创 【C++】类和对象(上)

提示:上面结构体定义中,C++更喜欢用 class来代替 struct//类体,由成员函数和成员变量组成//注意,后面结尾这里有分号一、声明和定义全放在类体中。成员函数名前需要加类名::.h文件//类//成员函数和成员变量分别定义//成员函数//成员变量int* a;//用来初始化的临时变量int size;//栈的大小,也即是栈中的数据个数//栈容量.cpp文件void Stack :: Init(int n = 4) {//栈的初始化。

2023-10-28 14:59:43 141

原创 【C++】auto关键字(c++11)、指针空值(c++11)

但是,这种定义方法是C98的,我们日常在使用时,不可避免的会遇到一些麻烦。

2023-10-28 10:53:00 158

原创 【C++】函数重载、引用、内联函数。

场景一:做参数。

2023-10-26 12:39:48 91

原创 【C++】总结下缺省参数,同时顺便补充一个计数算法

为函数的。

2023-10-24 08:03:52 39

原创 【C语言】借助队列来实现基数排序

基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。

2023-10-13 14:49:41 91

原创 【C++】namespace 和 << >>的使用介绍。

/<< 是流插入运算符,与C语言中的printf()函数作用类似。" << endl;//其中,endl的作用 "\n"换行符作用一致。" << "\n";//cout和cin能自动识别类型int x = 2;// >> 流提取,作用与C语言中的scanf类似。return 0;

2023-10-12 12:30:12 35

原创 【C语言-数据结构与算法】归并排序(不使用分治递归实现)

其的分治递归就是先把一组数据分成两组,然后分治递归不停拆分为两组,直到其为的时候,并同时将其数据归并一下。因为是从将不停缩小,缩小到为空或只剩一个数据时回溯归并。那么我们可不可以就从分组,并且。这样,等到分组达到最大时,也就刚好把整个数据都归并了一遍了。

2023-09-04 22:57:43 47

原创 【C语言-数据结构】归并排序(使用分治递归来实现)

将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列区间有序。然后,利用分治递归法,紧接着将这分开的两组以同样的以中间值为界的方法来划分为两组,一直到最后只剩一个数或为空的时候停下来。停下来的这时,先将数据排序一下,也就是将这两组数据归并一下,然后将归并好的数据拷贝回原数据中去,最后回溯就ok了。到这里左半区间就变得有序了,同样的,右半区间也可以一样的实现。到这,也就完成了归并排序的讲解了。首先,先将一组数据分成两组,这里可以以中间值为界来划分。//分治递归,让子区间变得有序。

2023-09-02 21:10:18 279

原创 【C语言--数据结构】关于快速排序的一些补充及优化和将快速排序递归实现改为非递归实现

这时候,如果我们呢还想接着用快排来使其整体全部变为有序的话,如果还是选用最右边或最左边那个数据为KEY(假如刚好为最大值或最小值),这时使用快排可能会失效(栈溢出,递归调用太多次了,递归和为:N + N -1 + N -2 + ....1,所以这时的时间复杂度为O(N^2) )。其实我们在使用快排递归调用来使其形成左小右大(左大右小)的过程中,假如在其递归排序到了一个相对较小的区间处的时候,我们这时其实没有必要再对其进行递归调用排序了,直接用插入排序算法不是就可以节省下递归调用的时间了么?

2023-08-23 00:05:36 47

原创 【C语言】快速排序的不同实现方法

这个挖坑法和快速排序的总体实现上来看基本上差不太多。只是在使用了这个方法之后,对原生版本的快排中的。

2023-08-20 23:28:05 29

原创 【C语言】QuickSort---快速排序

如果将最左边的值作为基准值(KEY)后,让left先走,那么相遇时的值会比KEY大,这时,如果交换KEY的值和下标,则。,我们就实现了KEY这个基准值的左边都比它要小,它的右边都比其要大了,也就是左小右大了。了吧,然后KEY的左子序列是不是都是比它小,右子序列都是比它大的。),当我们将最左边的值作为基准值时,就得让right先走了。这样,在其完成之后,其实也就是递归完成后,它的整体就成为了。,并且同时将KEY的下标也一并与相遇的数据。时,先将其共同指向的值和KEY指向的。的数据的时候停下来。

2023-08-11 00:29:19 493

原创 【C语言】Select排序

选择排序,就是将从一组数据的最左边开始(最右也行),然后向右(左)遍历一遍,在找到最大(最小)的那个数据的时候,将其放在最初的位置(末尾),然后再回到其后一个(前一个)位置,再重新遍历,接着找出最大(最小).......把全部的数都遍历了之后,其数据也就有序了。

2023-08-09 21:33:00 59

原创 【C语言】Shell排序(希尔排序)---详细讲解,由浅入深。

一组数据分组然后使用插入排序。

2023-08-04 00:26:06 134

原创 【C语言】直接插入排序

排序,在我们生活中很常见,如:点外卖时,看到一份蛋炒饭的店排名;我们在班级中的成绩排名高低;全国各省GDP的排名......这些都是排序。

2023-08-02 00:15:27 71 1

原创 【C语言】判断一颗二叉树是否是完全二叉树

这就是完全二叉树的定义。一颗二叉树,它的每一层的节点都必须是全满的,不能有空。且同时,最后一层的节点也必须从左至右是连续存在的。那么,这颗树就是一颗完全二叉树。(满二叉树是特殊的完全二叉树)

2023-08-01 22:21:11 1186 2

原创 【C语言】二叉树的层序遍历

要对二叉树进行层序遍历,那么我们首先得先创建出来一个二叉树了。

2023-07-30 22:54:16 2552 1

原创 【C语言】二叉树的模拟销毁和创建

【代码】【C语言】二叉树的模拟销毁和创建。

2023-07-29 21:48:22 341

原创 【C语言】关于二叉树的算法题

总体思路:先判断根节点是否为空,如果不为空的话,那就将它的值用一个临时变量val来存储起来。同时,将其val作为基准值,利用前序遍历来遍历一遍整个二叉树,看是否有值与其不同。一旦有一个不同,则将全局变量的值改变一下。最后,再来判断一下全局变量的值是否改变了就行。总体思想:先判断是否为空树。判断完成之后,将其根节点指向的值用一个临时变量保存一下。再分别用两个临时指针变量来存储其左右节点的地址,并将其根节点的值分别于左右子树遍历判断是否相等一下。

2023-07-24 23:34:44 44

原创 【C语言】详解如何求一颗二叉树的深度及简单介绍下深度优先遍历及广度优先遍历

所以,其求深度的重点就是分别利用递归求出左右子树的层数也就是深度,然后相比较一下左右子树的层数哪一个较大,然后较大的那一个加1就求出来了深度了。

2023-07-24 15:34:03 674

原创 【C语言】利用递归来实现二叉树的前,中,后序遍历以及补充一些与二叉树相关的操作

1.前序遍历:(Preorder Traversal 亦称先序遍历)---访问根节点的操作发生在遍历其左右子树之前。2.(Inorder Traversal)----访问根节点的操作发生在遍历其左右子树之间。(Postorder Traversal)---访问根节点的操作发生在遍历其左右子树之后。由于被访问的节点必然是某子树的根,所以N(Node),L(Left subtree) 和 R(Right subtree)又可以解释为根,根的左子树和根的右子树。

2023-07-18 00:38:16 525 1

原创 【C语言】TOP-K问题(从N个数据中找出最大的k个数或者最小的k个数)

这里需要注意的是,这个第三种方法只适合于在有大量数据的时候用。可以节省大量的空间并且也会节省些时间。在数据量相对较小的时候,其实和第二种方法的时间复杂度差不多。

2023-07-16 21:14:39 451 1

原创 利用向上调整或向下调整算法来直接将一个无序的数组转为一个大根堆或者小根堆

所以将 i 的初始值设置为 (n - 1 - 1) / 2. (也就是末尾节点的父节点)这里主要是因为AdjustDown方法的使用前提为其调整的左右子树必须都为堆才能进行。这里是将数组从下标为 0 的节点开始,到数组尾节点,每一个节点都进行一次向上提升。然后一直 将 i--操作,就将所有的非叶子节点都进行了向上排序。

2023-07-04 21:40:59 125

原创 数据结构与算法学习笔记【day01】

日常笔记

2023-06-25 16:31:37 52

原创 【C语言】从整形数组中找出只出现一次的整数(找两条单身狗)

查找情侣数组中的两只单身狗!

2023-05-06 14:34:55 54

原创 【C语言】模拟实现常用的关于字符串的库函数(有代码)

模拟实现C语言常用字符串的库函数

2023-04-19 15:17:15 47

原创 【C语言】模拟实现qsort库函数

将冒泡排序模拟实现为qsort函数

2023-04-10 16:24:44 42

原创 【C语言】移位操作符(>> <<),位操作符( & | ^),逻辑操作符(&& ||)的使用方法和总结

对一些经常使用但使用有点复杂的操作符来进行下小结。

2023-03-16 14:04:19 204

原创 【C语言】详解getchar函数该如何使用

getchar函数的使用分析详解

2023-03-14 12:03:18 2698

原创 【C语言】扫雷小游戏思路的简单介绍及具体的代码分享

简单介绍实现扫雷实现思路和具体代码分享

2023-03-13 17:02:38 257

原创 【C语言】实现三子棋小游戏---顺着逻辑讲解大体的实现思路

C实现三子棋小游戏的逻辑思路整理

2023-03-12 11:55:30 121

原创 【C语言】产生一个随机数的方法的详解

在C语言中如何生成一个随机数详解。

2023-03-12 11:05:49 1497

原创 C语言实现_计算一个无符号整数的每一位之和(递归)

递归实现计算无符号整数的每一位之和

2023-03-09 17:32:37 333

原创 C语言实现字符串逆序操作_(使用递归并且不使用库函数和不使用递归的二中实现方式)

主要是讲解C的字符串逆序排列使用递归和不使用递归的两种解决方法

2023-03-08 16:51:26 387

C语言TOP-K问题(从一堆数据中找出最大的k个数或者最小的k个数)

用C语言利用数组来模拟实现一个堆的结构

2023-07-14

空空如也

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

TA关注的人

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