
数据结构
文章平均质量分 75
切糕师学AI
技术只是你人生活中很小很小的一小部分,千万不要因为它忽略了其他东西。
展开
-
堆的维护时间复杂度
要回答这个问题,我们首先要明确堆是什么?堆的构建过程是什么样的?堆排序是什么?再来计算它们的时间复杂度。呦呦鹿鸣图解大顶堆的构建、排序过程堆就是利用完全二叉树的结构来维护的一维数组。堆可以分为大顶堆和小顶堆。大顶堆:每个结点的值都大于或等于其左右孩子结点的值。小顶堆:每个结点的值都小于或等于其左右孩子结点的值。如果是排序,求升序用大顶堆,求降序用小顶堆。一般我们说topK问题,就可以用大顶堆或小顶堆来实现,最大的 K 个:小顶堆最小的 K 个:大顶堆自底向上建堆和自顶向下建堆。原创 2024-01-01 23:23:10 · 1144 阅读 · 0 评论 -
优先队列的时间复杂度
这个问题主要分为两个部分:优先队列是什么?优先队列的时间复杂度是多少?原创 2023-12-15 14:57:14 · 3588 阅读 · 0 评论 -
算法的时间复杂度是什么?
时间复杂度是用来估算出程序的运行时间的。我们通常会估计算法的操作单元数量,来代表程序消耗的时间。随着数据规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称时间复杂度,记为 O(f(n))。原创 2023-12-15 14:30:52 · 620 阅读 · 0 评论 -
【性能优化实战】一段高性能代码的诞生之旅——如何写出高性能代码
本文通过对一段简单、低效的代码从多个不同层面逐步对其进行性能优化,力求把这段代码的性能提升到最大。以此演示我在工作中常用的几种性能优化手段。原创 2022-07-10 21:49:14 · 1110 阅读 · 6 评论 -
.net软件、网站性能优化
不用改代码逻辑的提速方式 计算机里面,数据类型,比如char(1 个字节)、int(4个字节)、float、double。所以无符号整数能用char的就不要用unsign int,能用float的就不要用double; 计算机里面除法比乘法慢,乘法比加减慢,好像减法比加法慢一些(不确定),位运算比加减快; float 或者 double 类型变量能用乘法的就不用除法。比如除以3,可以写成乘以0.3333; 用位运算的都用位运算; 代码逻辑: 提高代码可读性,命名规范,减少无效逻原创 2020-05-21 13:05:27 · 841 阅读 · 2 评论 -
C#一颗简单多叉树的实现(原理、广度优先遍历、深度优先遍历)
实现原理:多叉树中的节点有两个域,分别表示节点名以及一个链表,该链表存储其子节点的地址。根据用户输入进行深度递归调用建树。另外还实现了一个层次优先遍历函数。该函数用一个队列实现该多叉树的层次优先遍历。首先将根节点入队列,然后检测队列是否为空,如果不为空,将队列出队列,访问出队列的节点,然后该节点的子节点指针入队列,依次循环下去,直至队列为空,终止循环,从而完成整个多叉树的层次优先遍历。首先原创 2015-07-05 09:22:22 · 11605 阅读 · 2 评论