当前位置: 首页 > 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;
        // 二分查找插入位置
 


http://www.mrgr.cn/news/94018.html

相关文章:

  • 数字电路逻辑代数 | 运算 / 定律 / 公式 / 规则 / 例解
  • 【设计模式】《设计模式:可复用面向对象软件的基础》设计模式的分类与组织
  • 类和对象(下)
  • 大语言模型-语言模型发展历程
  • ⭐算法OJ⭐链表排序【归并排序】(C++/JavaScript 实现)
  • 基于Ollama平台部署的Qwen大模型实现聊天机器人
  • ⭐算法OJ⭐经典题目分类索引(持续更新)
  • NVSHMEM介绍、InfiniBand GPUDirect、和NVshmem使用案例说明
  • Application.OnTime如何引用带参数的过程
  • 记录--有惊无险
  • 数据结构全解析:从线性到非线性,优缺点与应用场景深度剖析
  • 大模型在甲状腺良性肿瘤诊疗全流程中的应用研究报告
  • Nginx 监控方法(‌Nginx Monitoring Methods)
  • LearnOpenGL-笔记-其二
  • 【从零开始学习计算机科学】操作系统(八)IO管理
  • 大模型在甲状腺癌诊疗全流程预测及方案制定中的应用研究
  • Excel 中如何实现数据透视表?
  • 【Pandas】pandas Series asfreq
  • 如何通过强化学习RL激励大型语言模型(LLMs)的搜索能力?R1-Searcher来了
  • 指令微调 (Instruction Tuning) 与 Prompt 工程