当前位置: 首页 > news >正文

二叉树+排序

//层序遍历

不使用的原因是在Test.c中可以被识别(Queue.h包含于Test.c,Queue.h在Test.c展开后不要使用部分可以找到),但在Queue.c中无法识别(Queue.h包含于Queue.c,Queue.h在Test.c展开后不要使用部分找不到)

所以不要使用部分要替换为struct BinaryTreeNode* ,即替换为原来的类型,因为typedef会在联接时去找这个原来的类型。

排序都是先搞定单趟,再搞定全部

插入排序

void InsertSort(int* a, int n)

接口为 数组首元素指针变量(整型类型),数组元素个数

单趟

按从小到大排列

从数组的某一个数开始,该数为被比较元素,其下标为end(表示进入比较的最后一个元素)。

它的后一个元素,下标为end+1的元素为需要比较元素。

法一(下左):

1.(1)若a[end+1]<a[end],就将a[end]赋给a[end+1],此时a[end+1]被覆盖,为了防止a[end+1]被覆盖丢失(防止覆盖是要原先的a[end+1]与a[end+1]前面的元素按个比较),在a[end]赋给a[end+1]前将a[end+1]赋给int变量tmp,此时应为tmp<a[end],将end--,。

(2)或者a[end+1]>=a[end],此时不做任何操作,直接break,

2.此时再将 tmp赋给a[end+1]

法二(下右):

1.(1)同上

(2)或者a[end+1]>=a[end],将 tmp赋给a[end+1]

2.单独对end==-1时做判断,此时tmp赋给a[end+1],

int end; int end;

int tmp=a[end+1]; int tmp=a[end+1];

if(tmp<a[end]) if(tmp<a[end])

{ {

a[end+1]= a[end]; a[end+1]= a[end];

end--; end--;

} }

else else

{ {

break; a[end+1]= a[end];

break;

} }

a[end+1]=tmp; if(end==-1)

{

a[end+1]= a[end];

}

让这个思路循环起来,end>=0时循环,循环仅包含if和else

法一:将 tmp赋给a[end+1]此时还有一种情况,tmp是比a[end]前所有值都小,end=-1,结束循坏

法二:2.单独对end==-1时做判断,此时tmp赋给a[end+1]

采用法一

int end;

int tmp=a[end+1];

while(end>=0)

{

if(a[end+1]<a[end])

{

a[end+1]= a[end];

a[end]=tmp;

end--;

}

else

{

break;

}

}

a[end+1]=tmp;

整体

让end从下表0开始,到n-2为止,建立循环,如下图

http://www.jsqmd.com/news/487724/

相关文章:

  • 计算机毕业设计springboot面向移动端的线上作业系统的设计与实现App 基于Spring Boot的移动端在线作业管理系统的设计与开发 面向移动设备的线上作业系统开发:基于Spring Boot
  • 【贪心】选择尽量多的不相交区间
  • 对象解构赋值:接口数据解包 10 个实战写法|JS 基础语法与数据操作篇
  • 蓝桥杯(排序)
  • mPLUG VQA图文问答实战:跨境电商商品图多语言描述自动生成
  • java之继承和多态的认识
  • 计算机毕业设计springboot温州商学院职称评审系统 基于Spring Boot的温州商学院教师职称评审管理系统设计与实现 温州商学院职称评审平台的Spring Boot架构开发
  • DeepSeek-OCR在AI办公中的应用:会议纪要OCR→Markdown→Notion同步
  • Unity面试总结
  • 雯雯的后宫-造相Z-Image-瑜伽女孩提示词模板库:20组已验证瑜伽体式+环境+服饰组合
  • LM Studio 国内高效使用指南:从下载到模型部署全流程解析
  • ssm+java2026年毕设勤工俭学管理系统【源码+论文】
  • map/filter/reduce:数组10个常用实战操作|JS 基础语法与数据操作篇
  • PIM 协议
  • C语言洛谷刷题总结7(题单【入门6】函数与结构体)
  • kkFileView 源码编译实战:从零构建最新预览服务安装包
  • 淡入淡出的button控件,源代码
  • Agentic AI提示工程:多任务学习策略的实战经验
  • # 英语听力提升方法(适合词汇量约1200的学习者)
  • 解决VSCode Remote-SSH连接失败的常见问题与排查方法
  • 【Java从入门到入土】06:String的72变:从字符串拼接到底层优化
  • 代码随想录算法训练营第九天 | 翻转字符串里的单词 、右旋转字符串
  • Qwen3-TTS-Tokenizer-12Hz实战案例:有声书制作中章节音频统一token化方案
  • SpikeTrack: A Spike-driven Framework for Efficient Visual Tracking—— 一种用于高效视觉追踪的脉冲驱动框架
  • VSCode结合EmmyLua实现Lua代码高效调试指南
  • 深入解析javax.net.ssl.SSLHandshakeException:如何修复No negotiable cipher suite错误
  • 计算机网络基础:网络互联与核心设备 | 0基础入门必看
  • MedGemma 1.5保姆级教程:从Docker拉取镜像到浏览器访问6006端口
  • Qwen Pixel Art保姆级教程:从Docker安装到提示词工程(含20个优质模板)
  • ssm+java2026年毕设清空购物商城系统【源码+论文】