码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 算法(一)


    "进步的每一步都步履维艰"

    http://www.mashibing.com

    排序算法:

    big O :算法的时间或者空间,随着问题规模的扩大,而变化的规律

    10 种常见的排序算法:选择,冒泡,插入,堆,希尔,归并,快速,桶,计数,基数

    希尔排序:

    希尔排序为什么比普通的插入排序效率高?因为:在间隔大的时候,移动的次数少,在间隔小的时候,移动的距离短了,从两个方面提高了效率。

    希尔排序最优的间隔序列:Knuth 序列  { h = 1; h = 3h +1 }

    希尔排序没有用到其他的空间,所以它的空间复杂度是 big O(1)

    归并排序: 

    在递归的时候一定有一个条件停止返回:base case

     空间复杂度是 big O(n),为什么不是n方?因为在递归的时候,函数每次调用完,temp数组的空见就会被销毁,所以最多也就是n

    TimSort,改进的归并排序

    快速排序:

     

     上述代码有两处bug

    双轴快排:

    java源码里面也是双轴快排

    思想:找两个轴,将数组分成三份,加上正在处理的区域,应该是四个区域

  • 相关阅读:
    关于oss直传
    【javaWeb】在webapp中手动发布一个应用
    计算机组成详解(运算器、控制器、存储器、I/O部件)
    net自动排课系统完整源码(适合智慧校园)
    About-Flink
    金九失足,10月喜提“Java高分指南”,11月冲击大厂
    PHP命令行脚本接收传入参数的三种方式
    前端代码整洁思考
    【UNI-APP】阿里NLS一句话听写typescript模块
    【Linux】一个小故事让你秒懂shell外壳程序
  • 原文地址:https://blog.csdn.net/qq_52179917/article/details/126727008
  • 最新文章
  • 【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号