数据结构与算法
文章平均质量分 95
从基础开始不断进阶,期间会有很多算法题的解法
Diligent programmer
据说真的有神,那我也想成为神明
展开
-
3 详解桶排序以及排序内容大总结
比较器返回负数,认为第一个参数应该放在上面,返回正数,认为第二个参数应该放在上面, 等于0无所谓。就要排序的“东西”,开个数组,遍历一遍数据,然后在辅助数组中 ++ ,最后输出。以前我们学那些排序,选择、冒泡、插入、快排、堆,其实本质上都只和比较有关系,也就是它们。同样值的个体之间,如果不因为排序而改变相对次序,就是这个排序是有稳定性的;但是不足也很明显,我们要排序的对象,它一定得有“进制” 这个东西。大样本快排,小样本直接插入,→ 工程,利用各自优势,减小常数项。,是会按照内存地址排的,那样是乱的。原创 2024-02-27 21:42:12 · 1055 阅读 · 0 评论 -
1 认识时间复杂度和简单排序算法
时间复杂度为一个算法流程中,常数操作数量的一个指标。常用O(读作big O)来表示。具体来说,先要对一个算法流程非常熟悉,然后在去写出这个算法流程中,发生了多少的常数操作,进而总结出常数操作数量的表达式。原创 2024-01-15 13:54:26 · 949 阅读 · 2 评论 -
2 认识O(NlogN) 的排序
简单选择、冒泡、插入排,时间复杂度都是O(N^{2}) ,之所以它们差,因为它们都浪费了大量的比较行为,每一轮的比较都是独立的,几乎过了N 次,才知道了某一个数应该放在初位置。而归并排序就没有浪费比较行为,每一次merge 归并,其实都将有序信息传递下去了。时间复杂度O(N*logN),额外空间复杂度O(N)原创 2024-02-20 21:49:44 · 957 阅读 · 0 评论