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

Java排序算法全解析

1.冒泡排序

核心本质:前后两个数值之间进行对比排序

2.选择排序(简单选择排序)

  • 核心本质:找到待排序数组中最小值,然后将其和待排序数组的首位进行交换
  • 如何找最小值:定义一个临时变量存储最小值,假设第一个数是最小值,依次进行比较
  1. 插入排序
  • 核心本质:把待排序数组的值插入到已经排好序的数组当中
  • 假设数组的第一个数据是已经排好序的,采用对比交换的方法,类似向前的冒泡排序。
  1. 希尔排序(缩小增量排序)
  • 在插入排序的基础上完成的。
  • 插入排序过程中,如果后边的数据比较小,前边的数据比较大,就可能会导致小数据向前移动的次数比较多,进而将整个算法的效率降低。

3.快速排序

步骤:
1.将待排序数组当中第一个数作为基准数
2.定义i和j游标,分别指向待排序数组的第一位和最后一位
3.让j游标先移动,去找比当前基准数小的数据,找到后停止。 为什么先让j游标移动?
4.让i游标去移动,找比当前基准数大的数据,找到后停止。
5.判断i和j游标是否相遇。
5.1未相遇,i和j指向的值进行交换,然后继续执行3、4、5步。
5.2相遇,相遇位置的数和基准数进行交换
以基准数为界,将数组拆分成左右两部分重新执行上述步骤
时间复杂度:nlog(n)

4.基数排序(桶的思想)

10个桶,按照个十百位排序

http://www.kler.cn/a/462956.html

相关文章:

  • 【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(三)
  • 计算机网络•自顶向下方法:网络层介绍、路由器的组成
  • RabbitMQ基础篇之Java客户端快速入门
  • HackMyVM-Airbind靶机的测试报告
  • 每日一学——监控工具(Grafana)
  • Redis面试相关
  • memcached的基本使用
  • arcgis模版空库怎么用(一)
  • 基于Java+SQL Server实现的(GUI)会展中心管理系统
  • Wndows bat将一个目录下所有子文件夹的路径导出到txt文本
  • Windows 安装 MySQL8(在已有MySQL 5.7 的情况下)
  • 【SQL Server】教材数据库(3)
  • 【Domain Generalization(2)】领域泛化在文生图领域的工作之——PromptStyler(ICCV23)
  • 爬虫基础之爬取表情包GIF
  • Pyqt+Opencv的练习
  • 【嵌入式硬件】嵌入式显示屏接口
  • CTFshow-pwn刷题
  • Mongodb日志报错too many open files,导致mongod进程down
  • 主数据驱动的数据治理框架
  • 探索 Yocto-Meta-OpenEuler:嵌入式开发的强大基石
  • [卫星遥感] 解密卫星目标跟踪:挑战与突破的深度剖析
  • OkHttp深度解析:请求流程、分发器机制、拦截器工作及TCP连接复用
  • 算法-Excel字母表转换成数字 26进制转换
  • Mono里运行C#脚本17—load_tables
  • ica1
  • 青云客-网页端语音机器人