搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
我家自动化
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
MySQL详细学习教程(一)_mysql教程
2
[CSP-J 2022] 逻辑表达式 (中缀表达式转后缀表达式 , 后缀表达式建表达式树)_csp-j前中后缀表达式精讲
3
miui8删除应用商店不卡米_删除小米应用商店不卡米
4
python学习-结构化的文本文件_中文文本结构化实例python
5
Python-Mysql 实现学生信息管理系统_pymysql学生管理系统
6
增加博客访问量的 5 种方法_csdn 快速增加流量
7
数据结构(线性结构:双链表)_双链表插入
8
数据结构——第八章(查找)_数据结构第八章总结
9
软考-系统集成项目管理中级-信息系统建设与设计_信息系统项目管理中级
10
Jboss CVE-2017-12149JBoss 反序列化漏洞利用_cve-2017-12149利用
当前位置:
article
> 正文
一、常见算法之排序算法简单描述_排序算法的问题描述
作者:我家自动化 | 2024-04-11 11:59:06
赞
踩
排序算法的问题描述
1、冒泡排序
基本思想:两两比较,小的上浮,大的下沉。
算法描述:对一组数据,两个两个的依次比较,将小数放到前面,大数放到后面(小的上浮,大的下沉)
第一次排序:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。
第二次排序:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。
时间复杂度: O(n^2)
2、选择排序
基本思想:遍历选择,位置交换
算法描述:对一组数进行遍历,第一次遍历选择出最小的数,与下标为0的数进行交换,第二次从下表为1出开始遍历,从余下的数中选择最小的数与当前下标为1的数进行交换,依次下去
时间复杂度:O(n^2)
3、插入排序
插入排序主要分为:直接插入排序和希尔排序
(1)直接插入排序
基本思想:有序列和无序列,从无序列中取数插到有序列中相对应的位置
算法描述:将一组数分为两块,一块是有序列,一块是无序列,有序列是按照顺序排列的,从无序列中取出一个数a,对有序列进行遍历,找到数a在有序列中应在的位置并插入到有序列中,依次循环。
时间复杂度:O(n^2)
(2)希尔排序
基本思想:选取关键字(增量),分组,插入排序
算法描述:第一轮:将一组数通过关键字,分为好几个小组,对每个小组进行插入排序,第二轮:将第一轮后的结果通过关键字再次分为好几个小组,在对每个小组进行插入排序操作,依次执行……直到关键字为1为止
关键字(增量)的取值规则:第一次取总长度的一半,第二次取一半的一半,依次累推直到1为止,
时间复杂度:O(nlogn)
4、 归并排序
基本思想:利用分而治之的思想,先分散,在合并
算法描述,第一轮:将数组中的元素两两排序合并,第二轮,在第一轮的基础上,在将小组进行两两排序合并,依次类推,直到整个数组排序完成。
时间复杂度:O(n log n)
5、堆排序
基本思想:堆本质是一颗完全二叉树(大顶堆,和小顶堆),构造初始堆,最大最小交换,输出最大值,重新调整大顶堆
算法描述:1、首先构造初始堆,即完全二叉树,父节点大于左孩子节点并且大于右孩子节点;
2、将最小值和最大值交换位置,输出最大值,然后将预先的数再次调整为大顶堆,依次输出。
时间复杂度:
O(n log n)
6、
快速排序
基本思想:分治法,1、将原问题分解为若干个规模更小但结构与原问题相似的子问题。
2、递归地解这些子问题,
3、然后将这些子问题的解组合为原问题的解。
算法描述:找一个标准数,将比这个数小的放在左边,将比这个数大的放到右边,对这两组数再次分而治之,找中间的数,将比这个数小的放在左边,将比其大的放到右边,依次类推 直到排序完成为止。
时间复杂度:
O(n log n)
常见排序算法的比较:
本文内容由网友自发贡献,转载请注明出处:
【wpsshop博客】
推荐阅读
article
面向对象
设计
五大基本
原则
_
面向对象
五大
设计
原则
...
1.单一职责
原则
:就一个类而言,应该仅有一个引起它变化的原因。 一个类如果承担的职责过多,就等于把这些职责耦合在一起,...
赞
踩
article
vivado
使用
约束
、
添加
和创建
约束
文件
_
vivado
ps7
约束
文件
...
vivado
使用
约束
、
添加
和创建
约束
文件
_
vivado
ps7
约束
文件
vivado
ps7
约束
文件
...
赞
踩
article
Spring
boot
集成
RabbitMq
_spring
boot
集成
rabbitmq
...
一、搭建
RabbitMq
1.1 参考RabbitMQ教程二、使用教程2.1 打开服务端cmd 打开 C:\Program...
赞
踩
article
MySQL
锁
机制
:高
并发
场景下该如何
保证数据
读写的
安全
性?_
sql
本身
并发
安全
吗...
看到这里,相信大家对
MySQL
中提供的锁
机制
有了全面的认识,但以目前情况而言,虽对每种锁类型有了基本认知,但本篇的内容更...
赞
踩
article
丢失
的
照片
怎么
找
回来
?深度
照片
恢复
,官方教学_
丢失
照片
怎么
恢复
...
照片
丢失
后如何是好?大家知道深度
照片
恢复
是
怎么
做到
的
吗?
丢失
的
照片
怎么
找
回来
?
照片
丢失
后无处可寻
的
话可以点进来看看!_丢...
赞
踩
article
支付宝
alipay
.
fund
.
trans
.
uni
.
trans
fer(单笔转账接口)功能整合...
支付宝
alipay
.
fund
.
trans
.
uni
.
trans
fer(单笔转账接口)功能整合_
alipay
.
fund
.t...
赞
踩
article
小
程序
项目:
springboot
+vue基本微信小
程序
的
校园
二手
商城的设计与实现_
uniapp
校园
二...
在当今社会的高速发展过程中,产生的劳动力越来越大,提高人们的生活水平和质量,尤其计算机科技的进步,数据和信息以人兴化为本...
赞
踩
article
python
小游戏
:猜
数字
和
石头
、
剪刀
、
布
_
小游戏
类似
石头
剪刀
布
用
python
...
Python快速实现“猜
数字
”和“
石头
、
剪刀
、
布
”
小游戏
。_
小游戏
类似
石头
剪刀
布
用
python
小游戏
类似
石头
剪刀
布
用py...
赞
踩
article
MPLAB
X使用小技巧
--
快速打开
MCC
配置工具_
mplab
mcc
core
v5.7.0 un...
首先在MCHP官网下载我们所需要的lib文件,然后在
MPLAB
X里点击,Tools
--
Options
--
Plugins...
赞
踩
article
Spring
Security
Oauth2
之 理解
OAuth
2.0授权流程...
一个能够授权访问受保护资源的实体。当资源所有者是一个人时,它被称为最终用户。
Spring
Security
Oauth2
...
赞
踩
article
基于SpringBoot
图书
销售
管理系统
...
传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行...
赞
踩
article
网络
工程师
英语词汇
(2)...
DFS 分布式文件系统 DES 数据加密标准 DCD 数据载波检测 DSMN Director...
赞
踩
article
【
JavaWeb
】
Servlet
与
过滤器
...
javaweb中的
Servlet
与
过滤器
【
JavaWeb
】
Servlet
与
过滤器
...
赞
踩
article
MsgBox
函数
用法小结_
excel
msgbox
框
最
多
多
少行...
1、作用在消息
框
中显示信息,并等待用户单击按钮,可返回单击的按钮值(比如“确定”或者“取消”)。通常用作显示变量值的一种...
赞
踩
article
stm32
f407zgt6
机械
臂、
机械
手_六
自由度
机械
臂
stm32
...
材料:(1)
stm32
f407zgt6最小系统开发板(2)
机械
臂(3)JDY-31蓝牙模块一、组装(1)蓝牙接线:VCC...
赞
踩
article
【
机器
学习
笔记】
误差
逆
传播
_
机器
学习
误差
逆
传播
...
其中输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出:换言之,输入层神经元仅是接受...
赞
踩
article
Git Hub
上传
文件
到
远程
仓库_
github
上传
文件
到
远程
仓库...
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档前言提示:以下是本篇文章正文内容,下面案例可供参考一、p...
赞
踩
article
深度
学习
——
回归
算法
Regression
...
同样是监督算法,
回归
是求解连续值的相关关系,分类是对离散值的划分。图1如图1,我们想要模拟离散点的走势。一、一元线性
回归
...
赞
踩
article
探索
未来
Web
界面
的
新可能
:
Open
-
Web
UI
...
探索
未来
Web
界面
的
新可能
:
Open
-
Web
UI
项目地址:https://gitcode.com/open-webui/...
赞
踩
article
宝塔
linux
添加
数据库
或者
修改
数据库
权限
报错:
数据库
管理
密码
错误_宝塔面板
数据库
权限
设置失败...
问题:添加
数据库
或者
修改
数据库
访问
权限
都会提示
数据库
管理
密码
错误!解决思路:一、通过百度搜索,查到的解决方案如下:点击r...
赞
踩
相关标签
java
面向对象
设计模式
基本原则
fpga开发
java-rabbitmq
rabbitmq
spring boot
数据库
开发语言
缓存
redis
微信
微信小程序
网络协议
小程序
vue.js
python
汽车
物联网
大大通
芯片烧录
单片机
spring
oauth2