直接插入排序和冒泡排序

核心思路不同

  • 冒泡排序:通过重复比较相邻的元素,每次将较大(或较小)的元素"冒泡"到数列的一端。每一轮都会让一个最大(或最小)的元素移动到最终位置。

​

  • 直接插入排序:将数列分为"已排序"和"未排序"两部分,每次从"未排序"部分取一个元素,插入到"已排序"部分的合适位置,使"已排序"部分始终保持有序。

核心思路不同

  • 冒泡排序:通过重复比较相邻的元素,每次将较大(或较小)的元素"冒泡"到数列的一端。就像水中的气泡逐渐上浮,每一轮都会让一个最大(或最小)的元素移动到最终位置。

  • 直接插入排序:将数列分为"已排序"和"未排序"两部分,每次从"未排序"部分取一个元素,插入到"已排序"部分的合适位置,使"已排序"部分始终保持有序。类似整理手牌时,将新抽的牌插到正确位置。

操作方式不同

  • 冒泡排序:通过相邻元素的两两比较和交换来实现排序,每一轮遍历会确定一个元素的最终位置,需要多次遍历整个数列。

  • 直接插入排序:逐个处理未排序元素,将其与已排序部分的元素从后往前比较,找到插入位置后移动元素并插入,只需遍历一次未排序部分。

适用场景不同

  • 冒泡排序:适用于数据量较小的场景,但其交换操作较多,效率较低,实际应用中较少使用。

  • 直接插入排序:在数据基本有序时效率很高(接近O(n)),适合小规模数据或作为复杂排序算法的子过程(如希尔排序)。

两种算法的时间复杂度均为O(n²),但直接插入排序的实际性能通常优于冒泡排序。

相关推荐
ZhengEnCi3 小时前
大模型的分类到底怎么分:从基础模型到推理模型、从通用到专用的完整图谱
算法
取名真是3 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
罗西的思考4 小时前
【轻量化复刻大模型 / KIMI K3】KDA 模块交互式演示
人工智能·算法·机器学习
nm_zfyjt6 小时前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)
算法·重构·内蒙古朋友圈广告服务商·内蒙古朋友圈获客
w_zero_one7 小时前
算法--构造
java·数据结构·算法
其实防守也摸鱼7 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php
小超人诞生日记9 小时前
C++ 智能指针的使用及其原理详解
c++·算法
AiNightVision12 小时前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南
人工智能·算法·计算机视觉·车载系统·无人机·视频·智能硬件
牧羊人.33313 小时前
卷积神经网络之VGG
人工智能·深度学习·神经网络·算法·cnn