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

1.插入排序

插入排序(Insertion Sort)介绍:

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

1.基本思想

插入排序的基本思想是:

1.将数组分为已排序和未排序两部分

2.每次从未排序部分取出第一个元素

3.将该元素插入到已排序部分的正确位置

4.重复这个过程直到所有元素都被排序

2.算法步骤

1.从第一个元素开始,该元素可以认为已经被排序

2.取出下一个元素,在已经排序的元素序列中从后向前扫描

3.如果该元素(已排序)大于新元素,将该元素移到下一位置

4.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置

5.将新元素插入到该位置后

6.重复步骤2~5

3.动图示例

4.C++代码实现:

cpp 复制代码
#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;
}

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

相关推荐
camellia几秒前
SpringBoot(二十六)SpringBoot自定义注解
java·后端
camellia4 分钟前
SpringBoot(二十四)SpringBoot集成redis哨兵集群
java·前端·后端
仲夏plus9 分钟前
Java:基于SpringBoot的微服务文件上传下载组件,支持本地+OSS上传和后期可扩展性
java·spring boot
潇湘夜雨69713 分钟前
2023ICPC合肥题解
算法
MacroZheng15 分钟前
换掉ES!SpringBoot + Meilisearch实现商品搜索,太方便了!
java·spring boot·后端
Small踢倒coffee_氕氘氚17 分钟前
iPhone闹钟无法识别调休致用户迟到,苹果客服称会记录反馈
笔记·算法·灌灌灌灌
制冷男孩21 分钟前
机器学习算法-支持向量机SVM
人工智能·算法·机器学习·支持向量机
{⌐■_■}22 分钟前
【计网】认识跨域,及其在go中通过注册CORS中间件解决跨域方案,go-zero、gin
java·linux·开发语言·c++·中间件·golang·gin
猿java36 分钟前
什么是Nginx?它有哪些应用场景?
java·nginx·面试
代码程序猿RIP36 分钟前
【C语言干货】回调函数
c语言·开发语言·数据结构·c++·算法