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语言·算法·排序算法
Stanford_110610 小时前
C++中常用的十大排序方法之3——插入排序
c++·算法·微信小程序·排序算法·微信公众平台·twitter·微信开放平台
MZWeiei11 小时前
排序算法:冒泡排序
数据结构·算法·排序算法
7yewh14 小时前
八大排序算法(1)插入排序-直接插入排序 和 希尔排序
数据结构·算法·排序算法
不只会拍照的程序猿1 天前
从插入排序到希尔排序
java·开发语言·数据结构·算法·排序算法
龙泉诗1 天前
常用排序算法
java·算法·排序算法
赵健zj2 天前
Leetcode刷题面试2025
leetcode·面试·排序算法
Auc242 天前
数据结构与算法-排序算法
数据结构·算法·排序算法
无双@2 天前
算法分析—— 《归并排序》
数据结构·算法·leetcode·蓝桥杯·排序算法·排序·归并
孤独得猿2 天前
排序算法复习——包括插入排序、希尔排序、冒泡排序、快排(包括霍尔法、挖坑法、快慢指针法)、堆排、选择排序、归并排序等 (代码采用c/c++混编)
c语言·数据结构·c++·笔记·算法·排序算法