自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 排序算法简介

另外,如果遇到topK的问题时,可考虑使用堆排序的方式,例如,要在一百万个数据里选取最大的10个数,那么只需建立一个大小为10的小根堆,每次将堆顶的元素与数据中的元素进行比较,若堆顶元素小于该元素,则将该元素放入堆顶,再调整小根堆,然后再进行堆顶元素和数据的比较,循环往复,直至遍历完数据,那么小根堆中的10个数据即为最大的十个数据。堆排序就是利用堆的特点,将堆建成以后,取其根结点的值,然后用堆底的元素取代根结点的位置,再经过调整形成新的堆,再取其根结点的值,循环往复,直至堆中只剩一个元素。

2024-06-02 23:22:59 862

原创 二叉树的初步认识

二叉树是一种特殊的树形结构,主要的特点是每个结点最多有两个子树,且二叉树的子树有左右之分,次序不能颠倒。几种特殊的树:1.满二叉树高度为h,结点总数为2^h-1个结点的二叉树就是满二叉树,如果对满二叉树进行层序编号(自上而下,自左而右,从1开始),那么对于一个编号为i的结点,其双亲结点的编号为i/2向下取整,若有左孩子则编号为2i,右孩子为2i+1.2.完全二叉树其每个结点的编号与满二叉树的编号一一对应则是完全二叉树,各结点与其双亲结点和孩子结点的编号关系同上。3.二叉排序树。

2024-05-21 23:47:02 177 1

原创 栈与队列与构造

栈作为一种数据结构,只能在栈的一端进行数据的插入和删除,因此产生了先入后出的特征。由此,栈可运用于递归函数,以及正反括号的检查等。而,一组数据顺序入栈,其出栈的顺序却并不是固定的,其有着多种可能。假设有n个数据顺序入栈,那么出栈的可能性有上面这个式子就是卡特兰数,具体证明,感兴趣可以搜索一下。

2024-04-18 16:05:07 265

原创 关于双向带头链表

双向带头链表是链表的一种,一个结点由数据部分、指向前一个结点的指针和指向后一个结点的指针三部分组成。尽管看起来双向链表的结构较单向链表更为复杂,但是操作更为简便。双向链表相比单向链表在尾插、某个结点之前加入新结点、删除某结点等操作上,更加方便。而头结点的存在,能减少对输入结点为空情况的检查,使操作更方便。

2024-04-07 23:37:18 271 1

原创 C语言程序的编译与链接

当我们将代码写出来以后,文件的后缀通常是.c或者.h,计算机并不能直接运行这两个后缀的文件。那么我们的代码是如何经过编译和链接形成计算机能够运行的程序呢?我们已经知道,一个项目中,包括许多不同的.c文件和.h文件。这些文件相互之间,通过声明引用联系在一起,而把这些声明引用链接在一起就需要链接器,这个过程就是链接,这个过程也会涉及一些库函数,我们把这些运行时库或第三方库称为链接库。而链接器并不能识别.c和.h文件,我们需要将这些文件转化成链接器能识别的.obj文件,也叫目标文件,这个转化的过程就是编译。

2024-01-17 01:08:36 604

原创 文件与文件操作

为了防止数据的丢失,我们想对数据进行持久化的保存,文件也就出现了,例如我们写的代码就会以文件的形式保存在电脑中,下次打开时就不会丢失写出来的代码。在程序设计中,一般从文件功能的角度对文件进行分类:程序文件和数据文件。首先是程序文件,例如我们以.c为后缀保存的文件就是程序文件,程序文件包括源程序文件,目标程序文件和可执行程序文件。其次是数据文件,程序在运行过程中需要输入数据和输出内容到文件上,这样的文件就是数据文件。

2023-12-24 17:02:11 1663

原创 结构体类型数据

例如,一个学生拥有姓名和年龄两种信息,就可以通过结构体类型对一个学生相关的两个变量进行描述。结构体在声明时,可以不对结构体类型进行重命名,例如省略上面代码中的stu,这样做的后果就是匿名的结构体类型只能用一次。

2023-12-23 18:11:29 669 1

原创 整数与浮点数在内存中的储存

由于内存中存储数据时只会储存二进制数,在储存整数时,需要考虑的仅仅是整数是否会过大而溢出内存,而在储存浮点数的时候则需要考虑浮点数的精确度,那么在精确度和浮点数所占空间内存之间就需要做出取舍。

2023-12-11 22:55:06 28

原创 字符串函数的使用

在敲代码的过程中,经常需要操作字符串,为了方便这一过程,对字符串函数的使用熟练度就显得尤为重要,接下来就介绍几个常用的字符串函数。

2023-12-07 00:08:59 29

原创 对指针的理解

指针个人理解为指向某个特定数据存储地址的变量。

2023-12-03 23:18:18 20 1

原创 扫雷小游戏的简单实现

首先需要一个进入游戏的菜单,可以选择进入游戏或退出游戏。然后进入游戏后,映入玩家眼帘的游戏界面,由于技术手段有限,选择打印出二维数组,并且二维数组的字符全部设置为“ * ”号。而游戏界面的背后需要有地雷埋入这9x9的方格中,我们选择另外设立一个二维数组,避免数据存储在同一个数组中,使得游戏界面一开始就将地雷位置显示出来。然后地雷的摆放需要随机,这里就涉及到随机函数。

2023-10-30 23:28:47 24

原创 关于C语言的分支语句与循环语句

for循环同样可以通过break和continue控制循环进程,但是和while有差别的地方在于,由于for循环将循环变量的改变放在了for的后面,因此不用担心会因为continue与循环变量的改变二者的顺序造成死循环。而当不止一个分支时,就需要else if 和else来帮助增加分支,其中else后不跟判断语句,相当于将if后的判断条件与else if后的判断条件排除后,剩余情况的总和,后再接分支语句。通过if后的判断语句,计算机会根据相关的数据进行判断是否进入if后的分支语句。

2023-10-22 22:11:42 21

空空如也

空空如也

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

TA关注的人

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