C++知识点总结(18):排序算法汇总

排序算法

一、冒泡排序

1. 过程

数组 9 5 8 3 2
第一轮 5 9 8 3 2
5 8 9 3 2
5 8 3 9 2
5 8 3 2 9
第二轮 5 8 3 2 9
5 3 8 2 9
5 3 2 8 9
第三轮 3 5 2 8 9
3 2 5 8 9
第四轮 2 3 5 8 9

2. 规律

一共有 n − 1 n-1 n−1 轮,每轮冒 n − i n-i n−i 次。

每轮会定一个最大值,通过两两比较,一直冒到最后一个位置。

二、选择排序

1. 过程

下标 1 2 3 4 5 最小值
原始 4 3 5 2 1 /
第一次 1 3 5 2 4 1
第二次 1 2 5 3 4 2
第三次 1 2 3 5 4 3
第四次 1 2 3 4 5 4
完成 1 2 3 4 5 /

2. 规律

一共有 n − 1 n-1 n−1 轮,每轮 1 1 1 次。

每轮会定一个最小值,和应该在的地方交换位置。

三、插入排序

1. 过程

下标 1 2 3 4 5
原始 4 3 5 2 1
第一次 1 4 3 5 2
第二次 1 2 4 3 5
第三次 1 2 3 4 5
第四次 1 2 3 4 5
完成 1 2 3 4 5

2. 思路

将待排序元素依次插到已排序序列中的恰当位置,最终形成有序序列的方法。

相关推荐
是希燃亚4 天前
📚 十大经典排序算法 C语言笔记(一看就会版)
排序算法
2501_924878736 天前
AI如何打通前端、后端、UI、SEO、文档等12类办公链路?
逻辑回归·排序算法
历程里程碑6 天前
26信号处理一:从闹钟到进程控制的奥秘
linux·运维·服务器·开发语言·c++·算法·排序算法
载数而行5206 天前
算法系列4之插入排序
数据结构·c++·算法·排序算法
载数而行5206 天前
算法系列5之交换排序
c语言·数据结构·c++·算法·排序算法
程序员南飞6 天前
算法笔试-求一个字符串的所有子串
java·开发语言·数据结构·python·算法·排序算法
_OP_CHEN6 天前
【Linux系统编程】(四十)线程控制终极指南:从资源共享到实战操控,带你吃透线程全生命周期
linux·运维·操作系统·线程·进程·c/c++·线程控制
瓦特what?6 天前
平 滑 排 序
c++·算法·排序算法
瓦特what?7 天前
波 浪 排 序
c++·算法·排序算法
阿捏利7 天前
详解Mach-O(十五)Mach-O __DATA_CONST
macos·ios·c/c++·mach-o