首页 > 其他分享 >11--插入排序

11--插入排序

时间:2024-03-20 17:31:12浏览次数:19  
标签:11 tmp arr 数字 -- 插入排序 len int

算法描述:从当前位置开始,从后往前找比当前数字小的,插入到这个小的数字的后面,在找的过程中,如果发现一个比当前数字大,同时将这个数字往后挪动,其中从后往前是重点。

插入排序的时间复杂度是O(n^{2}),特别地,若完全有序则时间复杂度为O(n)

空间复杂度为O(1),并且它是稳定的。

插入排序的特点:越有序越快

代码如下:

#include<stdio.h>

//插入排序
void InsertSort(int *arr,int len)
{
	int tmp;
	for (int i = 1; i < len; i++)//i是当前要处理的数字的下标
	{
		tmp = arr[i];
		int j;
		for (j = i - 1; j >= 0; j--)//从后往前找位置,找比当前数字小的,同时移动数据
		{
			if (arr[j] > tmp)
			{
				arr[j + 1] = arr[j];
			}
			else
			{
				break;
			}
		}
		arr[j + 1] = tmp;	
	}
}

//输出函数
void Show(int* arr, int len)
{
	for (int i = 0; i < len; i++)
	{
		printf("%d ", arr[i]);
	}
}

int main()
{
	int arr[] = { 7,6,2,3,1,4,5,8,9,10 };
	int len = sizeof(arr) / sizeof(arr[0]);

	InsertSort(arr, len);
	Show(arr, len);
	
	return 0;
}

标签:11,tmp,arr,数字,--,插入排序,len,int
From: https://blog.csdn.net/weixin_73974655/article/details/136882349

相关文章

  • c++简介
    C++(cplusplus)是一种计算机高级程序设计语言,由C语言扩展升级而产生[17],最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的......
  • 如何从零开始拆解uni-app开发的vue项目(二)
    昨天书写了一篇如何从零开始uni-app开发的vue项目,今天准备写一篇处理界面元素动态加载的案例:背景:有不同类别的设备,每个设备有每日检查项目、每周检查项目、每年检查项目,需要维保人员,根据不同设备和检查类别对检查项目进行处理,提交数据。首先看一下界面:<template>   <vi......
  • Docker安装MinIO保姆级安装
    文章目录前言一、前提二、安装步骤1.首先在你想安装位置下创建一个文件目录,进入目录后创建一个docker-compose.yml文件2.编辑docker-compose.yml文件3.当前路径下新建文件夹config,新建配置文件nginx.conf4编写配置文件nginx.conf5.启动&测试6.访问测试总结前......
  • 使用AOP记录feign调用日志
    文章目录业务场景使用DemoClientFeignDemlFeignFallBack主要代码DockLogAspectDockLogDockLogServiceDockLogAddDTOJacksonUtils业务场景记录请求第三方接口的情况。@DockLog可以用在类上也可以用在方法上使用DemoClientFeignimportorg.springframework.cloud......
  • STST论文复现
    Pix2Pix-basedStain-to-StainTranslation:ASolutionforRobustStainNormalizationinHistopathologyImagesAnalysis代码链接:artemis1919/Stain-to-Stain-Translation:Pix2Pix-basedStain-to-StainTranslation:ASolutionforRobustStainNormalizationinHis......
  • 10大漏洞评估和渗透测试工具【附安装包】
    1、NetsparkerSecurityScanner专为企业设计的强大的漏洞扫描和管理工具,它可以检测和利用SQL注入和XSS等漏洞。https://www.netsparker.com/product/2、AcunetixScanner针对中小型企业的Web应用程序漏洞扫描程序,但也可以扩展到更大的组织。它可以检测SQL注入......
  • 前端学习-vue学习007-计算属性+Class 与 Style 绑定
    官方教程链接Class与Style绑定Vue专门为class和style的v-bind用法提供了特殊的功能增强<span:class="{done:item.done}">{{item.text}}</span>如果item.done是true,以上代码实际为<span:class="done">{{item.text}}</span>如果item.done是false,......
  • Centos 7.5基于MySQL 5.7的 InnoDB Cluster 多节点高可用集群环境部署记录【转】
    前面给大家介绍过:MySQL高可用方案选型解析,今天我将详细的为大家介绍Centos7.5基于MySQL5.7的InnoDBCluster多节点高可用集群环境部署的相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!!MySQLInnoDBCluster介绍MySQL的高可用架构无论是社区还是官方,一......
  • SpringBoot整合Mybatis(SpringBoot3)
    依赖pom.xml:pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://......
  • ElasticSearch - 基本操作
    前言本文记录ES的一些基本操作,就是对官方文档的一些整理,按自己的习惯重新排版,凑合着看。官方的更详细,建议看官方的。下文以books为索引名举例。新增添加单个文档(没有索引会自动创建)POSTbooks/_doc{"name":"SnowCrash","author":"NealStephenson","release_dat......