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

C++基础算法(插入排序)

1.插入排序

插入排序(Insertion Sort)介绍:
插入排序是一种简单直观的排序算法,它的工作原理类似于我们整理扑克牌的方式。

1.基本思想

插入排序的基本思想是:
1.将数组分为已排序和未排序两部分
2.每次从未排序部分取出第一个元素
3.将该元素插入到已排序部分的正确位置
4.重复这个过程直到所有元素都被排序

2.算法步骤

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

3.动图示例

在这里插入图片描述

4.C++代码实现:

#include <iostream>
using namespace std;

void insertsort(int arr[],int sz)
{
	for(int i=1;i<sz;i++)
	{
		int j = i;
		int tmp = arr[i];
		while(j>=1&&tmp<arr[j-1])
		{
			arr[j]=arr[j-1];
			j--;
		}
		arr[j]=tmp;
	}
}

int main() {
	
	int arr[]={98,87,76,65,54,43,32,21};
	int sz = sizeof(arr)/sizeof(arr[0]);
	insertsort(arr,sz);
	for(int i=0;i<sz;i++)
	{
		cout<<arr[i]<<" ";
	}
	return 0;
}

冒泡,插入,选择都是很基础的排序算法。

相关文章:

  • 学习如何设计大规模系统,为系统设计面试做准备!
  • Uniapp自定义TabBar组件全封装实践与疑难问题解决方案
  • sscanf() 用法详解
  • docker 安装多次 Jenkins后,插件全部报错
  • G8 的 Morph(形态/变形)转移到 Genesis 9 (G9)
  • 《Java八股文の文艺复兴》第八篇:时空裂缝中的锁竞争——当Synchronized与量子纠缠重构线程安全
  • 探索 Gaggol:理解 10^^^100 的宇宙级常数
  • [TAMUctf 2025]
  • 【C语言】文件操作(2)
  • 吾爱破解安卓逆向学习笔记(4p)
  • OpenCV:计算机视觉的强大开源库
  • 【Python Cookbook】字符串和文本(三)
  • Java基础 3.31
  • Macro 巨汇黄金外汇投资全解析:策略与操作步骤?
  • 【STM32】最后一刷-江科大Flash闪存-学习笔记
  • 第四章Python基础进阶—函数(其二)
  • 自由学习记录(51)
  • 电源芯片在自动化测试中该如何降低成本增加精准度
  • LLM - 开源强化学习框架 OpenR1 的环境配置与训练参数 教程
  • Spring Boot 中的 Aware 接口以及 ApplicationContextAware 的详细说明、使用示例及注意事项
  • 沈阳做网站好的/百度学术论文查重入口
  • asp文件怎么做网站/公司企业网站建设方案
  • 在国外做网站推广/自己建网站怎么弄
  • 进入公众号闪退怎么回事/seo优化费用
  • 大悟网站制作/保定seo排名外包
  • wordpress 站内搜索 慢/手机百度电脑版入口