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

14.排序

快排:左边比key小,右边比key大

当cur找到比key小的值++prev,自己跟自己交换没有意义,cur再往后走,遇见小的++prev,如果比key大++cur,直到遇到比key小, ++prev,交换

cur往后再找,又遇到小的,++prev,交换,小的往左边换,大的往右边

再把prev和key位置交换,

partsort2:

为了防止自己跟自己交换

递归改非递归:,递归调用栈帧,用栈帧模拟,看深度深不深,和数据多少没关系,因为栈帧是可以重复利用的

递归中栈帧里面村的核心数据是什么,区间。    0-9存到栈取出栈,单趟排序,排完压栈

为什么是右左不是左右,栈是后进先出,先入右,先取到左,这样先处理左边,如果先入左,就要先处理右边剩1个0个值没必要入栈了

3-4再单趟排假设在4,左3-3,右5-4,不用进了,再取6-9

这里不会栈溢出,函数调用调用栈帧,在栈区域,,而数据结构内存不够了是去堆申请,堆比栈远远大

每次一个区间才8字节,这1 2G能存很多很多区间,所以非递归问题不大,如果用队列是一层一层排序

栈是深度优先遍历,一边走完走另一边,队列是一层一层把stcakc h添加进来

小于end相当于最少两个值

递归相当于非递归,栈模拟递归,

栈dfs,队列bfs(一层走完走下一层)

归并排序:前提是左区间有序右区间有序

如果四个没有序,那就分成两个和两个,两个也不行,分成一个,一个和一个有序,取小尾插

_函数是子函数,

子问题递归,先把逻辑写出来

拷贝的是begin+end这个区间,比如说第二组数据拷贝回去就只是中间一段区间

会死循环,栈溢出,除本就会丢数据,左区间又-1,右区间可能不变5-9出现问题

就行了

真正有序发生在往回退的过程。后序

归并的时间复杂度:每一层归并是N,总共logN 层

归并排序非递归:也可以用栈,但是快排是前序(排完入栈),这里是后序。0-3,0-3入栈,0-3取出来,分割1,2-3,0-1,入栈 ,0-1取出来0-0就不入了1-1也不入了2-3出来2-2  3-3不入,栈空了,到底拿谁归,

改非递归可以用栈模拟,也可以直接用循环处理

i是起始位置,这一组有gap个,是左闭右闭就得-1

i换成j后面也是,别混了

每次归并的起点就是i,每组归并多少个

每次归并下来就拷贝回去,这样1 1归就搞定了

每一组归是ON外面循环1*2*2*2*。。。=N结束,1乘了logN 次2里面是N次,外面是logN 次

这只能对2的次方倍进行归并,剩下的存在越界问题        

看看有什么情况,把每组归并的区间都打印出来

只有begin1不会越界

gap不能变,大逻辑不能变,只考虑越界问题

这两个数本来就有序,不用管

为什么要归并一段,拷贝一段

越界的话没有归并不需要拷贝,如果拷贝放到外面,最后,8.9位置也会拷贝进去,反而出问题

http://www.dtcms.com/a/456850.html

相关文章:

  • Python自动化实战第一篇: 自动化备份100+台服务器Web 配置
  • 第五十二章 ESP32S3 UDP 实验
  • [鹤城杯 2021]Misc2
  • 山东省旅游网站建设网络设计是干什么的工作
  • 基于 ZYNQ ARM+FPGA+AI YOLOV4 的电网悬垂绝缘子缺陷检测系统的研究
  • 开源 C++ QT QML 开发(十二)通讯--TCP客户端
  • 【密码学实战】openHiTLS pkeyutl命令行:公钥实用工具(加解密、密钥交换)
  • 做标书有什么好的网站吗网站改版不收录
  • JDK17和JDK8的 G1
  • win10安装conda环境
  • TDengine 浮点数新编码 BSS 用户手册
  • mybatis call存储过程,out的参数怎么返回
  • 今日八股——JVM篇
  • 【论文阅读】REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS
  • 沈阳做网站比较好的公司做网站需要会的软件
  • ubuntu22.04安装gvm管理go
  • 基于单片机的智能点滴输液速度与液位控制系统设计
  • 嵌入式开发学习日志38——stm32之看门狗
  • golang面经——内存相关模块
  • 成都政务网站建设怎样做视频网站
  • 架构设计常画哪些图
  • 自然语言处理分享系列-词向量空间中的高效表示估计(一)
  • RNN的注意力机制:原理与实现(代码示例)
  • Flutter bottomNavigationBar 底部导航栏
  • 做男装去哪个网站好的网站开发工具有哪些
  • 【Spring 3】深入剖析 Spring 的 Prototype Scope:何时以及如何使用非单例 Bean
  • asp.net+mvc+网站开发wordpress 手机端页面
  • 【开题答辩全过程】以 爱篮球app为例,包含答辩的问题和答案
  • 深入理解跨域问题与解决方案
  • 从零搭建 RAG 智能问答系统1:基于 LlamaIndex 与 Chainlit实现最简单的聊天助手