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. 思路

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

相关推荐
薇茗7 小时前
【初阶数据结构】 升沉有序的平仄 排序
c语言·数据结构·算法·排序算法
拾光Ծ8 小时前
【Linux系统】线程(上)
java·linux·运维·jvm·线程·c/c++
不知名的忻8 小时前
归并排序(Java)
java·算法·排序算法
不知名的忻1 天前
交换排序:冒泡排序 vs 快速排序(Java)
java·算法·排序算法
浅念-2 天前
递归解题指南:LeetCode经典题全解析
数据结构·算法·leetcode·职场和发展·排序算法·深度优先·递归
jerryinwuhan2 天前
hello算法,简单讲(1)
算法·排序算法
qeen872 天前
【算法笔记】各种常见排序算法详细解析(上)
c语言·数据结构·c++·学习·算法·排序算法
zB6822HbX3 天前
狙击模拟《Center Mass: Streets of Ramadi》Steam页面 发售日待定
贪心算法·排序算法·动态规划
東隅已逝,桑榆非晚3 天前
深⼊理解指针(3)
c语言·数据结构·笔记·算法·排序算法
汉克老师4 天前
GESP5级C++考试语法知识(十五、分治算法(二))
c++·算法·排序算法·分治算法·gesp5级·gesp五级