当前位置: 首页 > news >正文

插入排序算法优化

一  插入排序概述

    插入排序是稳定的原地排序算法,核心思想是逐步构建有序序列。对于未排序部分的每个元素,在已排序序列中从后向前扫描,找到合适位置插入。时间复杂度为:

最优:O(n)(已有序)

最差:O(n^2)(完全逆序)

平均:O(n^2)

二  二分查找优化(减少比较次数)
1 核心思想
       在寻找插入位置时,使用二分查找代替顺序查找,将比较次数从O(n)降低到O(log n)。  
2  适用场景

      数据规模较大且比较操作代价较高(例如复杂对象比较)  。

3  时间复杂度

      比较次数O(n log n),移动次数仍为O(n^2)→ 整体O(n^2),但常数更小  。

4  c++代码
void insertionSortOptimized(int arr[], int n) {
    for (int i = 1; i < n; i++) {
        int temp = arr[i];
        int left = 0, right = i - 1;
        // 二分查找插入位置
 

相关文章:

  • Yolo-Uniow开集目标检测本地复现
  • Kotlin学习笔记之类与对象
  • 【ISP】ISP的pipeline的几种关键算法
  • mysql忘记root密码
  • 企业安全—对数据和资产进行识别和分类
  • 数据结构与算法效率分析:时间复杂度与空间复杂度详解(C语言)
  • 【赵渝强老师】PostgreSQL的模板数据库
  • 【C#学习笔记03】进制转换与反码、补码、原码
  • 数字人源头技术saas厂家开发
  • 木马查杀之AST初识篇
  • UE5.5 Niagara发射器更新属性
  • 迅为RK3568开发板篇Openharmony配置HDF控制UART-实操-HDF驱动配置UART-UART应用开发-UART驱动API接口介绍
  • 四层协议攻防手册:从SYN Flood到UDP反射的深度防御
  • 从前端视角理解消息队列:核心问题与实战指南
  • cesium1.126显示等高线
  • 深度学习基础:线性代数本质2——线性组合、张成的空间与基
  • Linux进程管理15 - CFS调度器2 - 数据结构关系
  • CAMEL 学习笔记一
  • 深入解析 RAG:检索增强生成的原理与应用
  • 【NLP 34、实践 ⑧ 基于faq知识库和文本匹配算法进行意图识别】
  • 专访|茸主:杀回UFC,只为给自己一个交代
  • 牛市早报|中美日内瓦经贸会谈联合声明公布
  • 金价大跌!足金饰品每克一夜便宜14元,涨势是否已终结?
  • 应急部:正在积极推动各地逐步科学建设改造应急避难场所
  • A股三大股指集体高开
  • 不到1小时就能速发证件?央媒曝光健康证办理乱象