- 博客(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-06 11:15:15
764
原创 【算法】- 查找 - 二分查找(折半查找、插入查找、斐波那契查找)
编译语言:C++编译器:VS2022二分查找的前提是需要有序顺序存储,对于只查找的话已经比较好了,对于经常插入和删除的数据来说,那就不建议使用。插入查找,就是一种比例查找。斐波那契查找也是通过斐波那契数相邻数进行分隔整个数组。
2024-10-05 12:55:27
622
原创 【算法】- 排序 - 计数排序
编译语言:c++编译器:VS2022提示:计数排序需要满足的条件:排序的元素必须时整数排序元素要在一定的范围内,并且比较集中。这样才能最大发挥计数排序的优势时间复杂度为:O(n+k)
2024-10-04 15:26:05
600
1
原创 【算法】- 排序 - 快速排序
编译语言: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.简单选择排序模板SelectionSort() - 用来进行选择排序Swap() - 用来对数据进行交换提示:以下是本篇文章正文内容,下面案例可供参考选择排序顾名思义就是,从一对数据中选择其中最小的放在第一位,其次第二小的放在下一位,就这样一直下去,直到完成排序(升序)。选择排序最大的特点就是交换移动次数相当少,当在最好的情况下,交换的次数为0,最差的时候,交换次数为n-1次,其最终的排序时间是比较与交换次数总和,所以时间复杂度为O(n2。
2024-10-02 13:37:40
488
原创 【萌新学习C语言】如何模块化创建静态的通讯录
【萌新学习C语言】如何模块化创建静态的通讯录(编译器:vs2022)有以下功能:通讯录人的信息:名字+年龄+性别+电话+地址1.存放100个人的信息2.增加联系人3.删除指定联系人4.查找联系人5.修改联系人6.排序7.显示联系人
2024-08-23 11:56:11
929
原创 【萌新学习C语言】如何根据qsort库函数,写一个能给任何类型排序的冒泡排序。
【萌新学习C语言】如何根据qsort库函数,写一个能给任何类型排序的冒泡排序。
2024-08-16 12:47:26
2123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅