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

1.十大排序算法

1.什么是排序算法?

在梳理十大排序算法之前,虽然知道排序算法是将数字或字母按增序排列的算法,但该理解过于片面,那排序算法的权威定义是什么呢。

一个排序算法(英语:Sorting algorithm)是一种能将一串资料依照特定排序方式排列的算法。最常用到的排序方式是数值顺序以及字典顺序。基本上,排序算法的输出必须遵守下列两个原则:

  1. 输出结果为递增序列(递增是针对所需的排序顺序而言)
  2. 输出结果是原输入的一种排列、或是重组

2. 如果评判一个算法?

1.时间复杂度

执行算法需要消耗的时间。一般来说,看算法实现中的for循环的个数,比如说冒泡排序的算法实现中有两个for,那么它的时间复杂度是n^2(n代表目标集合的大小)。但时间复杂度有三种细分情况,通常是最差、平均和最好性能。

2.空间复杂度

执行算法时所消耗的空间大小。在执行算法时,需要看有没有引入额外的内存空间,比如说对一个集合进行排序,没有引入额外的空间,那么时间复杂度就是O(n),如果创建一个大小和目标集合相同的集合,那么空间复杂度就是O(n^2)

3.稳定性

为啥算法还有稳定性,这种听起来不太好理解。我理解是算法排序后,各元素的相对位置的唯一性有没有变化,如果执行了多次该算法,各元素的相对位置都是固定且唯一的,那么就说这个算法是稳定的,否则称之为不稳定。

3.十大排序算法

算法之间的不同在于适用场景不同,各有千秋。

  1. 冒泡排序
  2. 选择排序
  3. 插入排序
  4. 快速排序
  5. 归并排序
  6. 希尔排序
  7. 堆排序
  8. 计数排序
  9. 桶排序
  10. 基数排序

1.排序算法 wiki

http://www.lryc.cn/news/1174.html

相关文章:

  • 算法导论—SAT、NP、NPC、NP-Hard问题
  • linux入门---基础指令(上)
  • 大数据Kylin(一):基础概念和Kylin简介
  • 推进行业生态发展完善,中国信通院第八批RPA评测工作正式启动
  • DOM编程-获取下拉列表选中项的value
  • 认证服务-----技术点及亮点
  • 6个常见的 PHP 安全性攻击
  • 三大基础排序算法——冒泡排序、选择排序、插入排序
  • 负载均衡上传webshell+apache换行解析漏洞
  • 【ESP 保姆级教程】玩转emqx数据集成篇③ ——消息重发布
  • 支持分布式部署的主流方式 - Session 持久化到 Redis
  • 计算机网络|第二章 物理层|湖科大课程|从零开始的计网学习——物理层(计网入门就看这篇!)
  • 【微服务】RabbitMQSpringAMQP消息队列
  • jenkins +docker+python接口自动化之docker下安装jenkins(一)
  • SpringBoot——Banner介绍
  • 【STL】综述
  • C++中编译的静态库与动态库
  • JS对象到原始值的转换
  • 深度复盘-重启 etcd 引发的异常
  • 2023年春招热点面试题(一)------新特性
  • 工程项目管理系统源码+spring cloud 系统管理+java 系统设置+二次开发
  • 想要精通算法和SQL的成长之路 - 接雨水
  • Vue3 更高效的构建工具——Vite
  • 优思学院|從《狂飙》高启强爱看的《孙子兵法》到六西格玛项目管理
  • 如何利用状态机编程实现启保停控制(含Stateflow模型介绍)
  • 4. sql 语句中常用命令
  • 第三章 Opencv图像像素操作
  • SpringBoot集成swagger3(CD2207)(内含教学视频+源代码)
  • Go语言语言学习十三(反射的对象值)
  • 【ESP 保姆级教程】玩转emqx数据集成篇② ——控制台输出动作(多用于测试环境调试功能)