码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 排序-表排序


    当我们需要对一个很大的结构体进行排序时,因为正常的排序需要大量的交换,这就会造成时间复杂度的浪费

    因此,我们引入指针,通过指针+临时变量的方式来避免时间复杂度的浪费

    间接排序-排序思路:通过开辟一个指针数组,储存结构体的地址。再用插入排序的方法来更改地址存放在指针数组里的位置(即下标) 最后数组储存地址指向的顺序即是排序后的顺序

    物理排序-排序思路:通过“N个数字的排序由若干个独立的环组成”——需要排列的数最后操作都是在若干个闭环中进行  

    我们可以在每个闭环中建立一个临时变量,储存一个数据,根据间接排序后的table与数组下标对齐来实现每个元素只移动一次的操作。最后闭环的元素即为tmp

    说出来有点绕,举个例子

    下面的这个顺序,我们用TMP储存A[0]--f,

    然后访问A[3]--a,把A[3]放到A[0],同时table=0

    再访问A[1]--d,把A[5]放到A[1],同时table=1

    重复上述操作

    最后访问到A[3],这时A[3]为空,且table!=3,把tmp放进去,操作结束

     

  • 相关阅读:
    JDK1.8新特性---Stream API
    【软件测试】7年资深带你详探什么是测试开发?
    Hadoop之HDFS——【模块二】数据管理
    C语言 9 —— 函数
    spring boot flowable多人前加签
    Git下载安装及基本配置
    小米为什么造不出芯片
    Hexo Puller: Hexo博客同步的一次性解决方案
    Dubbo学习记录(六)--Spring整合Dubbo中的Dubbo配置文件流程解析(二)
    生活中的视音频技术
  • 原文地址:https://blog.csdn.net/LCK_jack/article/details/134044594
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号