【排序算法】插入排序法 & C++实现 | [实例过程分析]

简介: 插入排序法 & C++实现

●插入排序法


1.简要介绍

插入排序算法代码段:


for (int i = 1; i < len; i++)
  {
  int t = a[i];
  int j = i - 1;
  while (j >= 0 && t < a[j])
  {
    a[j+1] = a[j];
    j--;
  }
  a[j + 1] = t;
  }

2.图形化演示

随机找5个数用插入排序法进行从小到大排序,如下图所示(每一个红框为一次进行)。


       第一次进行,i=1(标红字体为t=arr[1])、j=0,①while操作不进行,t插入到arr[1]数组位;


       第二次进行,i=2(标红字体为t=arr[2])、j=1,①while操作进行,将arr[1]插入到arr[2]数组位,i=2,j=0,②while操作不进行,t插入到arr[1]数组位;


       第三次进行,i=3(标红字体为t=arr[3])、j=2,①while操作进行,将arr[2]插入到arr[3]数组位,i=3,j=1,②while操作不进行,t插入到arr[2]数组位;


       第四次进行,i=4(标红字体为t=arr[4])、j=3,①while操作进行,将arr[3]插入到arr[4]数组位,


i=4,j=2,②while操作不进行,t插入到arr[3]数组位;


       第五次进行,完成排序;

8a661ae85db33ac069cb677dcf3d1d4f_8a78ab4746bc4fa9a7025f4a66805400.png

bbcf89d75ea03497a0fc6665e80673f9_4c8e91bcc9924e9aad02f31ca095c3e2.png


3.代码如下

#include<iostream>
using namespace std;
#define size 10
class insertionsort {
public:
  void insertionsort_1(int a[],int len);
  void shownumber();
  int arr[size];
};
void insertionsort::insertionsort_1(int a[], int len)
{
  for (int i = 1; i < len; i++)
  {
  int t = a[i];
  int j = i - 1;
  while (j >= 0 && t < a[j])
  {
    a[j+1] = a[j];
    j--;
  }
  a[j + 1] = t;
  //测试代码
  cout << i + 1 << ":" << " ";
  for (int m = 0; m < len; m++)
  {
    cout << a[m] << " ";
  }
  cout << endl;
  }
}
void insertionsort::shownumber()
{
  for (int i = 0; i < size; i++)
  {
  cout << this->arr[i] << " ";
  }
}
void text()
{
  insertionsort is;
  for(int i=0;i<size;i++)
  { 
  cin >> is.arr[i];
  }
  is.insertionsort_1(is.arr, size);
  is.shownumber();
}
int main()
{
  text();
}


4.结果如下

c9119e386c482837711e76db525b9fd8_2b1878214886497c84eb470755a8a4a8.png

目录
打赏
0
0
0
0
46
分享
相关文章
基于 C++ 哈希表算法实现局域网监控电脑屏幕的数据加速机制研究
企业网络安全与办公管理需求日益复杂的学术语境下,局域网监控电脑屏幕作为保障信息安全、规范员工操作的重要手段,已然成为网络安全领域的关键研究对象。其作用类似网络空间中的 “电子眼”,实时捕获每台电脑屏幕上的操作动态。然而,面对海量监控数据,实现高效数据存储与快速检索,已成为提升监控系统性能的核心挑战。本文聚焦于 C++ 语言中的哈希表算法,深入探究其如何成为局域网监控电脑屏幕数据处理的 “加速引擎”,并通过详尽的代码示例,展现其强大功能与应用价值。
75 2
2025 年 7 月境内深度合成服务算法备案情况分析报告
2025年7月,中央网信办发布第十二批深度合成算法备案信息,全国389款产品通过备案,服务提供者占比超七成。截至7月14日,全国累计备案达3834款,覆盖文本、图像、音视频等多模态场景,广泛应用于生活服务、医疗、金融等领域。广东以135款居首,数字人、AI客服等C端应用主导,民营企业成主力,国企聚焦公共服务。随着AI政策推动,备案已成为AI产品合规上线关键环节。
基于跳表数据结构的企业局域网监控异常连接实时检测 C++ 算法研究
跳表(Skip List)是一种基于概率的数据结构,适用于企业局域网监控中海量连接记录的高效处理。其通过多层索引机制实现快速查找、插入和删除操作,时间复杂度为 $O(\log n)$,优于链表和平衡树。跳表在异常连接识别、黑名单管理和历史记录溯源等场景中表现出色,具备实现简单、支持范围查询等优势,是企业网络监控中动态数据管理的理想选择。
26 0
基于 C++ 的 KD 树算法在监控局域网屏幕中的理论剖析与工程实践研究
本文探讨了KD树在局域网屏幕监控中的应用,通过C++实现其构建与查询功能,显著提升多维数据处理效率。KD树作为一种二叉空间划分结构,适用于屏幕图像特征匹配、异常画面检测及数据压缩传输优化等场景。相比传统方法,基于KD树的方案检索效率提升2-3个数量级,但高维数据退化和动态更新等问题仍需进一步研究。未来可通过融合其他数据结构、引入深度学习及开发增量式更新算法等方式优化性能。
93 17
|
2月前
|
Apriori算法的Python实例演示
经过运行,你会看到一些集合出现,每个集合的支持度也会给出。这些集合就是你想要的,经常一起被购买的商品组合。不要忘记,`min_support`参数将决定频繁项集的数量和大小,你可以根据自己的需要进行更改。
122 18
基于 C++ 布隆过滤器算法的局域网上网行为控制:URL 访问过滤的高效实现研究
本文探讨了一种基于布隆过滤器的局域网上网行为控制方法,旨在解决传统黑白名单机制在处理海量URL数据时存储与查询效率低的问题。通过C++实现URL访问过滤功能,实验表明该方法可将内存占用降至传统方案的八分之一,查询速度提升约40%,假阳性率可控。研究为优化企业网络管理提供了新思路,并提出结合机器学习、改进哈希函数及分布式协同等未来优化方向。
47 0
别急着上算法,咱先把数据整明白:大数据分析的5个基本步骤,你都搞对了吗?
别急着上算法,咱先把数据整明白:大数据分析的5个基本步骤,你都搞对了吗?
131 4
员工行为监控软件中的 Go 语言哈希表算法:理论、实现与分析
当代企业管理体系中,员工行为监控软件已逐步成为维护企业信息安全、提升工作效能的关键工具。这类软件能够实时记录员工操作行为,为企业管理者提供数据驱动的决策依据。其核心支撑技术在于数据结构与算法的精妙运用。本文聚焦于 Go 语言中的哈希表算法,深入探究其在员工行为监控软件中的应用逻辑与实现机制。
113 14
基于 C++ 哈希表算法的局域网如何监控电脑技术解析
当代数字化办公与生活环境中,局域网的广泛应用极大地提升了信息交互的效率与便捷性。然而,出于网络安全管理、资源合理分配以及合规性要求等多方面的考量,对局域网内计算机进行有效监控成为一项至关重要的任务。实现局域网内计算机监控,涉及多种数据结构与算法的运用。本文聚焦于 C++ 编程语言中的哈希表算法,深入探讨其在局域网计算机监控场景中的应用,并通过详尽的代码示例进行阐释。
83 4

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等