堆排序学习笔记

在学习堆排序之前,我们先来了解一下堆这种数据结构。 堆的概念堆是一种特殊的树形数据结构,它满足以下性质: 堆必须是一个 完全二叉树 。 堆序性:堆中任意节点的值总是不大于或不小于其子节点的值。 根据堆序性,我们可以将堆分为两种类型: 大顶堆:每个节点的值都大于或等于其子节点的值 小顶堆:每个节点的值都小于或等于其子节点的值 所以,如果一个完全二叉树的一个节点即大于其父节点,又大于其子节点,那么这个树就不是一个堆。小于同理。 笔记 完全二叉树的性质 ...

2024年06月26日 · 2 分钟 · Cassius0924

垃圾代码书写准则

这是一个你的项目应该遵循的垃圾代码书写准则的列表,把称为适当的垃圾代码。 来自GitHub开源项目State-of-the-art。 准则💩 以一种代码已经被混淆的方式命名变量如果我们键入的东西越少,那么就有越多的时间去思考代码逻辑等问题。 Good 👍🏻 let a = 42; Bad 👎🏻 let age = 42; 💩 多用拼音命名变量和函数写拼音多方便,我们要推崇。 Good 👍🏻 function hqtpgd(tp) { //获取图片高度 return tp.height; //图片 } Bad 👎🏻 function getImageHeight(image) { return image.height; } 💩 变量/函数混合命名风格为不同庆祝一下。 Good 👍🏻 let wWidth = 640; let w_height = 480; Bad 👎🏻 let windowWidth = 640; let windowHeight = 480; 💩 不要写注释反正没人会读你的代码。 Good 👍🏻 const cdr = 700; Bad 👎🏻 更多时候,评论应该包含一些“为什么”,而不是一些“是什么”。如果“什么”在代码中不清楚,那么代码可能太混乱了。 // 700ms的数量是根据UX A/B测试结果进行经验计算的。 // @查看: <详细解释700的一个链接> const callbackDebounceRate = 700; 💩 使用母语写注释如果您违反了“无注释”原则,那么至少尝试用一种不同于您用来编写代码的语言来编写注释。如果你的母语是英语,你可能会违反这个原则。 Good 👍🏻 // Закриваємо модальне віконечко при виникненні помилки. toggleModal(false); Bad 👎🏻 // 隐藏错误弹窗 toggleModal(false); 💩 尽可能混合不同的格式为不同庆祝一下。 Good 👍🏻 ...

2023年04月21日 · 4 分钟 · Cassius0924