bite阶段性测试_数据结构

解决问题之前我们要了解什么是度,特别是二叉树中的度,和图论中的度的定义是不同的

什么是度

在图论中,一个节点(或称为顶点)的是指与该节点直接相连的边的数量。度是用来衡量一个节点与其他节点连接紧密程度的指标。在无向图和有向图中,度的概念有所不同:

  1. 无向图中的度: 对于无向图,一个顶点的度简单地等于连接到该顶点的边的数量。例如,如果一个顶点与三条边相连,那么该顶点的度是3。
  2. 有向图中的度: 在有向图中,度被分为两种:
    • 入度(In-degree:入度是指指向该顶点的边的数量。
    • 出度(Out-degree:出度是指从该顶点出发指向其他顶点的边的数量。

图论和多(>=2)叉树对 度 的不同定义

二叉树中,节点的度通常是指该节点拥有的子节点的数量,而不是与该节点直接相连的边的数量。因为二叉树是一种特殊的树结构

在图论中,节点的度是指与该节点直接相连的边的数量,而不涉及子节点的概念。因此,图论中的节点度和二叉树中节点的度有所不同

二叉树中,度为0的节点通常指的是叶子节点,即没有子节点的节点,而不是脱离其他顶点的节点

回归本题

树的总节点数 ( n ) 等于所有节点的度数之和再加上1

总节点数 = 1 + 叶子节点数*0 + 度为1的节点数*1 + 度为2的节点数*2

总节点数 = 叶子节点数+度为1的节点数+度为2的节点数

399 = 叶子节点数*0 + 度为1的节点数*1 + 199*2

399 = 叶子节点数+度为1的节点数+度为2的节点数

解得:叶子节点200 度为一节点0

结论:

总结点数与所有节点度数和关系:

      1. 总节点数 = 1 + 叶子节点数*0 + 度为1的节点数*1 + 度为2的节点数*2
      2. 总节点数 = 叶子节点数+度为1的节点数+度为2的节点数//包有的方程

选择排序与堆排序

选择排序是啥,堆排序为啥基于选择排序

选择排序是什么

  •   工作原理:选择排序每次从未排序的部分选择最小(或最大)的元素,然后将其放到已排序部分的末尾。
  • 特点:在每次迭代中,选择排序只需进行一次交换操作,因此比冒泡排序的交换次数少。

选择排序和冒泡排序区别

选择排序和冒泡排序思想是一样的,只是选择排序优化了实现步骤

选择排序在每次迭代中选择未排序部分的最小(或最大)元素,并将其与当前位置交换,从而减少了交换的次数

Next指向前驱?

通常,prev叫做前驱, next叫做后继节点

筛选法是啥,筛选法建堆是怎么建堆。筛选法作用

筛选法建堆是一种在堆排序算法中用于构建堆的方法。它通常是从数组的中间向前遍历,对每个非叶子节点执行一次筛选操作,使得以该节点为根的子树满足堆的性质。

具体步骤如下:

  1. 从最后一个非叶子节点开始向前遍历,直到根节点。这些非叶子节点是数组中索引为 n/2 - 1 到 0 的元素,其中 n 是数组的长度。
  2. 对于每个非叶子节点,执行一次筛选操作(也称为下沉操作):
    • 比较该节点与其左右子节点的值,找到最大(或最小)的节点。
    • 如果子节点的值大于(或小于)该节点的值,则交换两者的位置。
    • 继续递归向下进行,直到满足堆的性质为止。

通过这样的操作,可以将一个无序的数组构建成一个堆,使得堆的根节点具有最大(或最小)的值,且满足堆的性质。

堆排序怎么排来着

上述筛选法建堆排序

六大排序稳定性?

  1. 冒泡排序(Bubble Sort):稳定。
  2. 选择排序(Selection Sort):不稳定。在选择最小元素的过程中可能破坏相等元素的相对位置。
  3. 插入排序(Insertion Sort):稳定。相等元素的相对位置在排序前后不变。
  4. 快速排序(Quick Sort):不稳定。对相等元素可能会进行交换,导致相对位置变化。
  5. 归并排序(Merge Sort):稳定。在合并过程中,相等元素的相对位置保持不变。
  6. 堆排序(Heap Sort):不稳定。在堆化的过程中可能会交换相等元素的位置,导致不稳定性。

只有快排和选择排序堆排序不稳定

插入和归并都稳定

为啥选择和冒泡基本思路相同,选择却不稳定?

举个例子,考虑序列 [2a, 3, 2b],其中元素 2a 2b 相等,但是它们的相对位置是不同的。如果选择排序先选中 2a,然后将其移动到已排序序列的末尾,那么排序后的序列可能变为 [3, 2b, 2a],导致相对位置的改变,从而不满足稳定性的要求。

--------------------------------------------------------------------------

快排

快排升序,左先走/右先走?为什么?

为啥碰到10?

当升序时,普通快排一定要右先走来保证相遇点为小于等于key的点

反之,降序左先走

普通快排code

void QuickSort1(int* a, int left, int right)

{

          // 区间只有一个值或者不存在就是最小子问题

          if (left >= right)

                   return;

          // 小区间选择走插入,可以减少90%左右的递归

          if (right - left + 1 < 10)

          {

                   InsertSort(a + left, right - left + 1);

          }

          else

          {

                   int begin = left, end = right;

                   // 100 200,注意的是left不一定是0

                   // [left, right]区间中的随机数做key

                   //int randi = rand() % (right - left + 1);

                   //randi += left;

                   //Swap(&a[left], &a[randi]);

                   // 三数取中

                   int midi = GetMidi(a, left, right);

                   //printf("%d\n", midi);

                   Swap(&a[left], &a[midi]);

                   //PrintArray(a+left, right-left+1);

                   int keyi = left;

                   while (left < right)

                   {

                             // right先走,找小

                             while (left < right && a[right] >= a[keyi])

                             {

                                      --right;

                             }

                             // left再走,找大

                             while (left < right && a[left] <= a[keyi])

                             {

                                      ++left;

                             }

                             Swap(&a[left], &a[right]);

                   }

                   Swap(&a[left], &a[keyi]);

                   keyi = left;

                   // [begin, keyi-1]keyi[keyi+1, end]

                   QuickSort1(a, begin, keyi - 1);

                   QuickSort1(a, keyi + 1, end);

          }

}

挖坑法

前后指针法

-------------------------------------------------------------------------------

归并排序code

大体思路没问题,还差一点没写完不影响理解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/599004.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python:实现b站登录并保存登录信息(baidu Comate插件帮助我逐行分析代码)

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️感谢大家点赞&#x1f44d;&…

O2OA(翱途)支持高斯_openGauss,瀚高_HighGo,磐维_panweidb等各种国产postgres分支数据库接入

O2OA&#xff08;翱途&#xff09;作为一款企业级应用平台&#xff0c;其支持多种数据库系统是其灵活性和可扩展性的重要体现。从MySQL、Oracle到国产的达梦、神州等数据库&#xff0c;再到对PostgreSQL的原生支持&#xff0c;O2OA展现了其对不同数据库环境的良好适应性。特别地…

LeetCode 难题解析 —— 正则表达式匹配 (动态规划)

10. 正则表达式匹配 思路解析 这道题虽然看起来不难理解&#xff0c;但却存在多种可能&#xff0c;当然这种可能的数量是有限的&#xff0c;且其规律对于每一次判别都使用&#xff0c;所以自然而然就想到用 动态规划 的方法啦 接下来逐步分析可能的情况&#xff1a; &#x…

stm32f103zet6_DAC_2_输出电压

实现效果 DAC输出的电压 同过电压表测量电压 1.DAC配置的步骤 初始化DAC时钟。配置DAC的GPIO端口。设置DAC的工作模式&#xff08;例如&#xff0c;是否使用触发功能&#xff0c;是否启用DAC中断等&#xff09;。启动DAC。 2常用的函数 函数 HAL_DAC_Start() - 开启指定…

企业终端安全管理软件有哪些?终端安全管理软件哪个好?

终端安全的重要性大家众所周知&#xff0c;关系到生死存亡的东西。 各类终端安全管理软件应运而生&#xff0c;为企业提供全方位、多层次的终端防护。 有哪些企业终端安全管理软件&#xff1f; 一、主流企业终端安全管理软件 1. 域智盾 域智盾是一款专为企业打造的全面终端…

淘宝商品搜索API:关键字搜索返回值详解与利用

在当今电子商务蓬勃发展的时代&#xff0c;淘宝作为中国最大的在线购物平台之一&#xff0c;拥有海量的商品信息和用户数据。为了更好地满足商家和开发者的需求&#xff0c;淘宝提供了商品搜索API&#xff0c;允许通过关键字搜索来获取商品信息。本文将详细解析淘宝商品搜索API…

LeetCode 每日一题 Day 144-157

2385. 感染二叉树需要的总时间 给你一棵二叉树的根节点 root &#xff0c;二叉树中节点的值 互不相同 。另给你一个整数 start 。在第 0 分钟&#xff0c;感染 将会从值为 start 的节点开始爆发。 每分钟&#xff0c;如果节点满足以下全部条件&#xff0c;就会被感染&#xf…

抖音小店怎么快速出体验分?分享三种不花一分钱,就能出分的技巧

哈喽~我是电商月月 才做抖音小店&#xff0c;新开的店铺是没有体验分的 没有体验分就没法用猜你喜欢和搜索流量&#xff0c;也没法持续做精选联盟&#xff0c;没体验分店铺就不好出单 于是很多朋友就去网上选择找S分机构&#xff0c;想快速出体验分&#xff0c;但这种方式我…

学习软考----数据库系统工程师24

关系数据库设计基础知识 函数依赖 码 多值依赖 性质

Semi-decentralized Federated Ego Graph Learning for Recommendation

论文概况 本文是2023年WWW的一篇联邦推荐论文&#xff0c;提出了一个半去中心化的联合自我图学习框架。 Introduction 作者提出问题 现有的推荐方法收集所有用户的自我图来组成一个全局图&#xff0c;导致隐私风险。联合推荐系统已被提出来缓解隐私问题&#xff0c;但在客户…

TXT文本高效批量编辑,支持批量将每个单号间的空白行进行删除掉,文本内容管理更方便

TXT文本是一种常用的存储快递单号的数据格式。然而&#xff0c;当TXT文本中存在大量的空白行时&#xff0c;不仅浪费了存储空间&#xff0c;还可能导致批量编辑和查询变得低效。为了解决这一问题&#xff0c;我们推出了高效的TXT文本批量编辑功能&#xff0c;支持批量删除单号间…

EOCR-ELR-30RM7Q电机保护器 施耐德韩国三和

EOCR-ELR-30RM7Q电机保护器 施耐德韩国三和 基于MCU(微处理器)的密集型设计 精确的接地故障保护功能 电力系统和电动机的接地故障保护 零序电流互感器监测接地故障 电流和故障延时单独设定 LED显示电源输入和运行状态 嵌入式安装 EOCR主要产品有电子式电动机保护继电器&#xf…

redis分片java实践、redis哨兵机制实现、redis集群搭建

redis分片java实践 linux安装redishttps://mp.csdn.net/mp_blog/creation/editor/134864302复制redis.conf配置文件成redis1.conf、redis2.conf、redis3.conf 修改redis的端口信息和存pid文件的路径。存pid文件的路径只要不同就行了&#xff0c;没什么特别要求。 指定配置文件…

记录汇川:电磁阀封装

二位电磁阀封装&#xff1a; 中封三位电磁阀封装&#xff1a; HMI&#xff1a;

5.6代码

1.最大公约数 这个题最重要的是要找到一个区间是1&#xff0c;找到之后就可以直接加次数就可以了 #include <bits/stdc.h>using namespace std;main() {long long n,i,j,a0,b,ans99999;cin>>n;long long s[n],dp[n][n];for(i0;i<n;i){cin>>s[i];if(s[i]1…

小程序预览或上传代码时,遇到app.json未找到某个wxml文件的解决方法

uniapp小程序&#xff0c;点击预览或者是上传代码&#xff0c;遇到app.json无法找到某个wxml文件的解决方法&#xff1a;清缓存 问题&#xff1a; message&#xff1a;Error: app.json: 未找到 ["subPackages"][3]["pages"][3] 对应的 subPackages4/pages/…

央国企加速新质生产力形成和发展,HR数字化工具如何推动创新内核构建?

自今年两会以来&#xff0c;“新质生产力”一词获得了广泛的关注。众多专家学者对其重要性、定义及作用进行了热烈且深入的讨论&#xff0c;一致强调了新质生产力的核心地位。对于那些致力于转型为现代化国有企业的国资中央企业而言&#xff0c;培育新质生产力无疑成为了当前及…

充电宝哪个牌子好?比较好用充电宝牌子,这些品牌别错过

作为一个资深的手机控&#xff0c;深知手机对于现代人的重要性。从早到晚&#xff0c;无论是点外卖、看剧还是处理各种事务&#xff0c;手机几乎成了我生活的必需品。然而&#xff0c;手机电量的问题总是让人头疼。在家时&#xff0c;找个插座充电自然不成问题&#xff0c;但出…

论文查重率高,有什么办法降重吗?推荐几个ai降重工具

现在大部分学校已经进入到论文查重降重的阶段了。如果查重率居高不下&#xff0c;延毕的威胁可能就在眼前。对于即将告别校园的学子们&#xff0c;这无疑是个噩梦。四年磨一剑&#xff0c;谁也不想在最后关头功亏一篑。 查重率过高&#xff0c;无非以下两种原因。要么是作为“…

论文查重率高,有什么办法降重吗?推荐笔灵AI

现在大部分学校已经进入到论文查重降重的阶段了。如果查重率居高不下&#xff0c;延毕的威胁可能就在眼前。对于即将告别校园的学子们&#xff0c;这无疑是个噩梦。四年磨一剑&#xff0c;谁也不想在最后关头功亏一篑。 查重率过高&#xff0c;无非以下两种原因。要么是作为“…
最新文章