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

总结了一些常见的排序算法,面试必备啊!转载

 名称

 复杂度 说明 备注
 冒泡排序
Bubble Sort

O(N*N)

 

将待排序的元素看作是竖着排列的气泡,较小的元素比较轻,从而要往上浮

 
 

插入排序

Insertion sort

 

O(N*N)

 

逐一取出元素,在已经排序的元素序列中从后向前扫描,放到适当的位置

 

起初,已经排序的元素序列为空

 

选择排序

 

O(N*N)

 

首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此递归。

 
 

快速排序

Quick Sort

 

O(n *log2(n))

 

先选择中间值,然后把比它小的放在左边,大的放在右边(具体的实现是从两边找,找到一对后交换)。然后对两边分别使用这个过程(递归)。

 
 

堆排序Heap Sort

 

O(n *log2(n))

 

利用堆(heaps)这种数据结构来构造的一种排序算法。堆是一个近似完全二叉树结构,并同时满足堆属性:即子节点的键值或索引总是小于(或者大于)它的父节点。

近似完全二叉树

 

希尔排

SHELL

 

O(n1+)

0<<1

 

选择一个步长(Step) ,然后按间隔为步长的单元进行排序.递归,步长逐渐变小,直至为1.

 
 

箱排序
Bin Sort

 

O(n)

 

设置若干个箱子,把关键字等于 k 的记录全都装入到第 k 个箱子里 ( 分配 ) ,然后按序号依次将各非空的箱子首尾连接起来 ( 收集 ) 

 

分配排序的一种:通过 " 分配 "  "收集 " 过程来实现排序。

 

桶排序

Bucket Sort

 

O(n)

 

桶排序的思想是把 [0  1) 划分为 n 个大小相同的子区间,每一子区间是一个桶。


ref:http://c.chinaitlab.com/cc/basic/200906/787908.html 

转载于:https://www.cnblogs.com/BpLoveGcy/archive/2010/03/25/1694562.html

相关文章:

  • Github上10 个最流行的数据可视化项目
  • 高中数学与初中数学的接轨点
  • 添加IIS出错,提示缺少CONVLOG.exe文件
  • SWIFT学习笔记05
  • 关于DEVMODE的数据结构--显示设备的属性(转)
  • 8-16 藏尾诗
  • 第七章 天国那边
  • CentOS7.3 部署 Zabbix V3.2
  • ASP.NET Web 服务器控件事件模型
  • 基于SmartThreadPool线程池技术实现多任务批量处理
  • 爱情四十七课,别拿爱解恨
  • 获取relatedTarget属性
  • 微信公众平台后台编辑器上线图片缩放和封面图裁剪功能
  • Win2008 R2 VDI动手实验系列之六:远程桌面虚拟机配置
  • 用外部物理路由器时与外部dhcp服务时怎样使用metadata服务(by quqi99)
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Centos6.8 使用rpm安装mysql5.7
  • Java的Interrupt与线程中断
  • Lucene解析 - 基本概念
  • python 装饰器(一)
  • Python语法速览与机器学习开发环境搭建
  • react 代码优化(一) ——事件处理
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • vue:响应原理
  • 当SetTimeout遇到了字符串
  • 力扣(LeetCode)357
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 移动端解决方案学习记录
  • 用Python写一份独特的元宵节祝福
  • 鱼骨图 - 如何绘制?
  • hi-nginx-1.3.4编译安装
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • # Apache SeaTunnel 究竟是什么?
  • #单片机(TB6600驱动42步进电机)
  • $.ajax中的eval及dataType
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (C#)一个最简单的链表类
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)计算机毕业设计ssm电影分享网站
  • (南京观海微电子)——I3C协议介绍
  • (四)c52学习之旅-流水LED灯
  • (一) springboot详细介绍
  • .htaccess配置常用技巧
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET4.0并行计算技术基础(1)
  • .NET正则基础之——正则委托
  • .Net中ListT 泛型转成DataTable、DataSet
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • /proc/stat文件详解(翻译)
  • @property括号内属性讲解
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [Android Pro] Notification的使用