自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【洛谷】- P1923 【深基9.例4】求第 k 小的数

通过快排,将该数组的数进行排序,判断出K在i,j的什么位置,如图。首先我们来看核心代码,也就是通过快排,将K的位置找出。如果k在j的左边,则在left到j的位置再次排序。如果k在i的右边,则在i到left的位置再次排序。代码进行对输入输出优化,以达到对时间限制的要求。在做这题的时候由于数字都比较大,我们可以使用。如果k在j和i的中间则,找到返回就行。知道k在j和i的中间退出递归。

2024-10-14 20:29:56 797

原创 【算法】- 查找 - 散列表查询(哈希表)

散列技术:在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)哈希表:采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表散列表查找的效率是最高的,因为它的时间复杂度为O(1)。可惜在实际情况中,会产生冲突(不同的数据在同一地址的情况),但散列表查询还是非常值得的。

2024-10-09 18:32:05 763

原创 【算法】- 查找 - 多路查找树(B树)

上次我们学了如何用平衡二叉树来插入和查找。这些算法都是在内存中进行,若我们要操作的数据非常大,大到内存没办法处理,这时我们就需要访问在外部的存储设备中的数据,在每次访问外部数据是都是需要消耗一定的时间,所以我们应该减少访问外部次数,这样效率就会提高,这时也就可以采用B树的结构对数据进行访问。这里我们主讲2-3树B树的应用,在内外存交换数据次数频繁,这就可以利用B树来增加效率。

2024-10-08 20:39:45 1745

原创 【算法】- 查询 -平衡二叉树

编译语言:C++编译器:VS2022平衡二叉树,解决了二叉排序树因有序数据导致效率下降的问题。

2024-10-07 14:39:05 807

原创 【算法】- 查找 - 二叉排序树

编译语言:C++编译器:VS2022 二叉排序树以在执行插入或删除的时候有不用移动元素的优点,但是二叉排序树的查找性能取决于二叉排序树的形状,所以我们需将二叉排序树调整成平衡状态也就是平衡二叉树,这也是我们下节将说明的内容。

2024-10-06 11:15:15 764

原创 【算法】- 查找 - 二分查找(折半查找、插入查找、斐波那契查找)

编译语言:C++编译器:VS2022二分查找的前提是需要有序顺序存储,对于只查找的话已经比较好了,对于经常插入和删除的数据来说,那就不建议使用。插入查找,就是一种比例查找。斐波那契查找也是通过斐波那契数相邻数进行分隔整个数组。

2024-10-05 12:55:27 622

原创 【算法】- 查找 - 顺序查找

编译语言:c++编译器:VS2022学会了如何去优化顺序查找,设置一个哨兵,这样不用每次都判断是否越界。

2024-10-05 12:55:04 510

原创 【算法】- 排序 - 计数排序

编译语言:c++编译器:VS2022提示:计数排序需要满足的条件:排序的元素必须时整数排序元素要在一定的范围内,并且比较集中。这样才能最大发挥计数排序的优势时间复杂度为:O(n+k)

2024-10-04 15:26:05 600 1

原创 【算法】- 排序 - 堆排序

编译语言:C++编译器:VS2022时间复杂度O(nlogn)

2024-10-04 13:47:40 447

原创 【算法】- 排序 - 快速排序

编译语言:c++编译器:vs2022 快速排序就是找一个数当作分割线,最好能使左半部分和右半部分数平均,这样这样递归,一直递归下去直到left==high,这样也就排序好了。

2024-10-03 17:39:28 892

原创 【算法】- 排序 - 归并排序

这次我们介绍归并排序的递归算法和迭代算法编译语言:c++编译器:vs2022非递归的迭代方法,避免了递归时深度为log2n的栈空间,空间知识用到归并临时用的TR数组,因此在使用归并排序时,尽量使用非递归的方法。

2024-10-03 16:20:59 534

原创 【算法】- 排序 -希尔排序

编程语言:C++编译器:vs2022 希尔排序是插入排序的一种改进,使得希尔排序能够再大规模无序的条件下也能够充分发挥作用。希尔排序时间复杂度:O(nlogn)~O(n2。

2024-10-02 15:56:02 239

原创 【算法】- 排序 - 插入排序

语言:c++编译器:vs2022插入排序所需的时间取决于输入中元素的初始顺序。时间复杂度为:O(n2。

2024-10-02 14:19:20 324

原创 【算法】 - 排序 - 选择排序

使用的语言为c++,编译器为vs2022.简单选择排序模板SelectionSort() - 用来进行选择排序Swap() - 用来对数据进行交换提示:以下是本篇文章正文内容,下面案例可供参考选择排序顾名思义就是,从一对数据中选择其中最小的放在第一位,其次第二小的放在下一位,就这样一直下去,直到完成排序(升序)。选择排序最大的特点就是交换移动次数相当少,当在最好的情况下,交换的次数为0,最差的时候,交换次数为n-1次,其最终的排序时间是比较与交换次数总和,所以时间复杂度为O(n2。

2024-10-02 13:37:40 488

原创 【C语言算法】之冒泡排序

【C语言算法】之冒泡排序提示:这里讲的是冒泡排序,冒泡排序的优化和冒泡排序的变种。

2024-09-19 17:13:29 1203

原创 【萌新学习C语言】如何将静态的通讯录改为动态且能保存数据的通讯录

【萌新学习C语言】如何将静态的通讯录改为动态且能保存数据的通讯录。

2024-08-24 11:42:50 2074

原创 【萌新学习C语言】如何模块化创建静态的通讯录

【萌新学习C语言】如何模块化创建静态的通讯录(编译器:vs2022)有以下功能:通讯录人的信息:名字+年龄+性别+电话+地址1.存放100个人的信息2.增加联系人3.删除指定联系人4.查找联系人5.修改联系人6.排序7.显示联系人

2024-08-23 11:56:11 929

原创 【萌新学习C语言】三种方法模仿strlen函数

【萌新学习C语言】三种方法模仿strlen函数1.计数器2.指针-指针3.递归方法

2024-08-18 11:10:49 762

原创 【萌新学习C语言】如何根据qsort库函数,写一个能给任何类型排序的冒泡排序。

【萌新学习C语言】如何根据qsort库函数,写一个能给任何类型排序的冒泡排序。

2024-08-16 12:47:26 2123

原创 【萌新学习c语言】三子棋代码

萌新学习C语言之三子棋

2024-08-11 19:12:07 517

空空如也

空空如也

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

TA关注的人

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