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

【算法 之插入排序 原理及案例】

插入排序原理:

插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

具体来说,插入排序的步骤是:

  1. 从第一个元素开始,该元素可以认为已经被排序;
  2. 取出下一个元素,在已经排序的元素序列中从后向前扫描;
  3. 如果该元素(已排序)大于新元素,将该元素移到下一位置;
  4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
  5. 将新元素插入到该位置后;
  6. 重复步骤2~5,直到所有元素都被排序。

代码示例:

#include <iostream>  
#include <vector>  void insertionSort(std::vector<int>& arr) {  int n = arr.size();  for (int i = 1; i < n; ++i) {  int key = arr[i];  int j = i - 1;  // Move elements of arr[0..i-1], that are  // greater than key, to one position ahead  // of their current position  while (j >= 0 && arr[j] > key) {  arr[j + 1] = arr[j];  j = j - 1;  }  arr[j + 1] = key;  }  
}  int main() {  std::vector<int> arr = {12, 11, 13, 5, 6};  insertionSort(arr);  std::cout << "Sorted array: \n";  for (int i = 0; i < arr.size(); i++)  std::cout << arr[i] << " ";  return 0;  
}

这段代码定义了一个insertionSort函数,该函数接受一个整数向量的引用作为参数,并对其进行原地排序。主函数main中创建了一个未排序的整数向量,并调用insertionSort函数进行排序,然后输出排序后的结果。

http://www.lryc.cn/news/386402.html

相关文章:

  • 第一节:如何开发第一个spring boot3.x项目(自学Spring boot 3.x的第一天)
  • JS逆向:由 words 、sigBytes 引发的一系列思考与实践
  • 计算机的错误计算(十五)
  • 制作img文件
  • GB28181视频汇聚平台EasyCVR接入Ehome设备视频播放出现异常是什么原因?
  • Java利用poi实现word,excel,ppt,pdf等各类型文档密码检测
  • 顺序表与链表学习笔记
  • 2.SQL注入-字符型
  • 在Ubuntu 14.04上安装和配置Elasticsearch的方法
  • C++:inline关键字nullptr
  • 数字信号处理实验三(IIR数字滤波器设计)
  • Why is Kafka fast?(Kafka性能基石)
  • Linux下的SSH详解及Ubuntu教程
  • MobPush HarmonyOS NEXT 版本集成指南
  • 什么是封装?为什么要封装?
  • 远程桌面无法复制粘贴文件到本地怎么办?
  • LeetCode 207. 课程表
  • 数据结构历年考研真题对应知识点(树的基本概念)
  • Pytorch和Tensorflow安装【Win和Linux】
  • 筑算网基石 创数智未来|锐捷网络闪耀2024 MWC上海
  • T4打卡 学习笔记
  • 抖音矩阵云混剪系统源码 短视频矩阵营销系统V2(全开源版)
  • zabbix报警机制
  • 【Matlab】-- 飞蛾扑火优化算法
  • 全面体验ONLYOFFICE 8.1版本桌面编辑器
  • 建议csdn赶紧将未经作者同意擅自锁住收费的文章全部解锁,别逼我用极端手段让你们就范
  • Pycharm一些问题解决办法
  • ONLYOFFICE 桌面编辑器 8.1 发布:全新 PDF 编辑器、幻灯片版式、增强 RTL 支持及更多本地化选项
  • Linux高并发服务器开发(六)线程
  • Google发布Gemma 2轻量级开放模型 以极小的成本提供强大的性能