自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 快速排序 -非递归版-双指针版

如果数据很多则容易栈溢出(不过现在硬件基本不会),而使用数据结构的栈来模拟实现递归是调用。快速排序的非递归实现涉及到使用一个。我们利用栈后进先出这一特性,

2024-06-13 20:37:19 137

原创 快速排序-Hoare 递归版 C语言

这是因为每次分割后,其中一个子序列的长度为0(即没有元素需要排序),而另一个子序列的长度则为n-1(即除了基准元素外的所有元素)。这意味着递归调用的深度较小,同时每次递归处理的数据量也大致相等,这使得算法能够保持较为均匀的分割,从而充分利用分治策略的优势。:right找到了比key要小的值停下,然后left走到了与right相遇停止,此时相遇的值肯定是比key小的值,因为是right走到的值,在key左边存放的都是比key的值小的值,右边都是大的,但并不一定时有序的。停下来,交换key的值和两人相遇的值,

2024-06-12 17:10:30 585 2

原创 堆排序-调整算法

1.堆了解堆排序首先要了解一下堆这个数据结构堆(Heap)是一种特殊的树形数据结构,它通常被表示为一个完全二叉树或近似完全二叉树,并且满足堆性质(Heap Property)。堆主要分为两种:大堆(Max Heap)和小堆(Min Heap)。我们有一个待排序数组{5,4,7,9,3,2,6,1},将他层序遍历为堆,如下图在堆中,我们在做一个大堆时要保证大的元素始终在小的上面,做一个小堆时,要保证小的元素始终在大的上面,所以我们需要实现两种。

2024-06-05 16:26:22 626 1

原创 希尔排序-插入排序

通过设计gap这一个变量,我们可以渐渐把无序的数组变成一个无限接近有序的数组,此时我们再来一次插入排序,就变得很简单了。来看极端情况arr[]={0,1,2,3,4,5,6,7,8,9},此时只需要遍历一遍数组时间复杂度达到了。为什么只需要遍历到倒数第二个元素,因为我们需要进行比较的是遍历到的元素的下一位值,:gap相对数组个数越大,大的数可以越快跳到后面,但是越不接近有序。gap相对数组个数越大,大的数可以越快跳到后面,但是越不接近有序。arr[]={9,8,7,6,5,4,3,2,1,0},属于。

2024-06-02 22:07:47 419 3

原创 链表带环问题--C语言

给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回 NULL。给定一个链表,判断链表中是否有环。:在上道题的基础上,增加一个。,记录两指针相遇的位置。

2024-05-09 21:36:52 365 7

原创 C语言_编译和链接

程序同时也可以使用静态(static)内存,存储于静态内存中的变量在程序的整个执行过程⼀直保留他们的值。在有操作系统的环境中:一般这个由操作系统完成。在独立的环境中,程序的载入必须由手工安排,也可能是通过可执行代码置入只读内存来完成。我们在test.c文件中使用了一次print,c中的print函数时必须确切知道print函数的地址,但是由于两个文件时。此过程就是队.i文件进行词法分析,语法分析,语义分析及优化,生成相应以.s为后缀的汇编代码。在预处理此阶段, .c和.h文件会被处理为 .i 后缀的文件。

2024-04-13 18:38:18 727 3

原创 c语言-结构体详解

结构体(struct)是C、C++、C#等编程语言中的一种复合数据类型,它允许您把多个不同类型的数据项组合成一个单独的类型。通过使用结构体,您可以创建一个自定义的数据类型,该类型包含多个字段,每个字段可以存储不同类型的数据。在C语言中,结构体的定义通常如下:struct 结构体名 { 数据类型 成员变量名1; 数据类型 成员变量名2; ... 数据类型 成员变量名N; };使用场景:通常定义一个变量时,比如人,拥有多个特性,名字,年龄, 性别等.这时我们可

2024-03-23 16:03:54 791 1

原创 字符串函数和内存函数的模拟实现

【代码】字符串函数和内存函数的模拟实现。

2024-03-20 16:02:31 750 5

原创 整数和浮点数在内存中存储的方式

2.尾数位只存小数点后面的位,就是.11然后剩下的位补0。包括符号位、指数和尾数(或称为有效数字)(因为 0.5=2 的-1次方)M(23个字节)----1.11。E(8个字节)----1。S(1个字节)---0。里面调试看一下是否正确。原码,反码,补码一致。

2024-03-19 13:34:25 454

原创 深入了解指针1--c语言

时,类型为int*,是指这个p存储一个int类型的数据(同理,如果定义一个char*类的指针,那么将会用来存储一字符型变量的地址,同样,如果存放数组或是函数的地址,就有数组指针,函数指针等等)指针:同int,char一样是一个变量,但他的作用是储存一个变量的地址。pp+1将跨越整个数组大小,解引用后指向0后面一个位置的元素。所以可以说:指针就是地址,地址就是指针。虽然两个地址相等,但在指针运算时。类型的变量p,用来存放a的地址。函数指针:存放函数的地址的指针。(指针解引用操作符)存放数组的地址的指针。

2024-03-06 19:07:24 381

原创 找单身狗--c语言

知识点: 1.按位异或。

2024-02-23 17:25:59 390 2

原创 猜凶手--c语言

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个以下为4个嫌疑犯的供词:A说:不是我。B说:是C。C说:是D。D说:C在胡说已知。

2024-02-22 16:08:51 288 1

原创 字符串左旋-c语言

【代码】字符串左旋-c语言。

2024-02-21 19:09:30 263

原创 使用-函数指针数组完成计算器

【代码】使用-函数指针数组完成计算器。

2024-02-19 15:50:37 164 1

原创 汉诺塔-递归问题-c语言(附源码)

在这里,我推荐大家看【有趣的汉诺塔游戏怎么玩?我们首先清楚递归的大致思想:把一个大型的问题转化为一个与原问题相似,但规模较小的子问题来求解.直到子问题分到无法在细分,递归就结束了~个盘子这种最简单的情况(即是第一个盘子为(n-1),第二个盘子为n)递归:'递'就是递推的意思,'归'就是回归的意思~(思考一下)~2.一次允许操纵一个盘子~当初我就是看这位老师讲解弄懂的~两个盘子是最简单的情况~2个盘子过程如下:~

2024-01-21 16:43:56 394 2

原创 冒泡排序(c语言)-内外循环

【代码】冒泡排序(c语言)-内外循环。

2024-01-20 13:55:17 361

原创 扫雷游戏---c语言

我是一名大一新生,今天是我发表博客的第一天,将通过已学知识来讲解一下如何使用C语言来编写扫雷小游戏.希望大家有所收获,互相进步.游戏介绍: 游戏整体框架 游戏具体功能及实现: 雷盘的定义 雷盘的初始化 布置雷 排查雷 获取周围雷的个数 打印雷盘 游戏完整代码: 1、test.c 2、game.h 3、game.c 游戏效果展示 1:游戏介绍:扫雷即是将雷盘中中的所有雷清排出来,每回合选择一个坐标,若此处有雷,则玩家被炸死退出游戏;若此处没有雷则继续并且显

2024-01-17 13:03:24 948 7

空空如也

空空如也

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

TA关注的人

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