插入排序的递归算法

2023-10-30

一、算法思想


由插入排序的基本思想可以得到它的递归算法:

确定前面的数是已经排好序了的,从当前数开始,依次一个个的插入到前面的数中。

 

二、代码

//插入排序的递归算法
void insert(vector<int>& a, int x=1)				
{                                                   //第一个参数为向量,第二个参数为将要向前插入的数
	if(x >= (int)a.size())			    //判断是否已经到了向量的最大值
		return;				    //是即返回,程序结束
	int temp = a[x],j;			    //定义变量,temp存储当前数值
	for(j = x; j > 0 && a[j-1] > temp; j--)	    //和插入排序普通算法一样,从当前数开始,从后往前插入
		a[j] = a[j-1];	  		    //通过赋值,节省时间
	a[j] = temp;			       	    //找到正确位置后,赋值,
	insert(a, x+1);				    //递归,开始插入下一个数
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

插入排序的递归算法 的相关文章

  • C++运算符的优先级

    有括号的优先级最高 涉及对象的运算符 自增自减 取值 取地址运算符 逻辑非 按位取反 强制类型转换 长度运算符 先乘除后加减 左移右移运算符 比较运算符 三目运算符 各类赋值运算符 逗号运算符优先级最低 注意 同一优先级的运算符 运算次序由
  • ESOE之最后一篇

    ESOE 项目现已完成0 2版 并开辟了一个站点放置 因此作者不会再在这里进行更新了 感兴趣的朋友请访问 http www viviasoft com esoe home gb index htm 第一次以网志形式计划一个项目 多谢cdsn

随机推荐

  • JS继承(含ES6)或者两个类A,B,B如何继承A

    JS继承方式有很多 主要分ES5和ES6继承的实现 先说一下ES5是如何实现继承的 ES5实现继承主要是基于prototype来实现的 具体有三种方式 一是原型链继承 即B prototype new A 二是借用构造函数 call 或者
  • 对于d3dcompiler_47.dll丢失问题,几种详细解决方法

    d3dcompiler 47 dll是Direct3D编译器的动态链接库文件 它是DirectX的一部分 DirectX是由微软开发的一组应用程序接口 API 用于在Windows操作系统上实现多媒体和游戏的高性能图形和声音效果 d3dco
  • 数据结构和算法学习之骑士周游算法(贪心优化)

    package com atguigu horse import java awt import java util ArrayList import java util Comparator import java util Sorted
  • 看论文技巧

    带着目的去看论文 漫无目的看论文效率不仅低下 而且啥都没学到 还不如直接打开手机刷抖音 每篇论文的abstract和methodology是最重要的 用来判断这篇论文读的价值 如果整篇论文的点不够核心或者和你不相关 直接下一篇 Relate
  • 【Audio音频兴趣拓展】TDD noise是如何产生的?

    GSM 蜂窝电话采用 TDMA Time Division Multiple Access 时分多址 时隙分享技术 时分多址把时间分割成周期性的帧 每一个帧再分割成若干个时隙向基站发送信号 基站发向多个移动终端的信号也都按顺序安排在预定的时
  • linux 删除所有子目录下的指定文件/文件夹(转载)

    linux 删除所有子目录下的指定文件 文件夹 采用find exec组合来完成 find alipay demo type d name pycache exec rm rf 说明 alipay demo 为待查询的开始目录 从此目录开始
  • 从删除顺序表中所有值为X的元素说起,谈谈python中删除list某个元素的方法

    一个题目 长度为n的顺序表L中删除所有值为X的数据元素 要求时间复杂度为 O n O n O n 空间复杂度为 O
  • 【BW系列】SAP 讲讲BW/4 HANA和BW on HANA的区别

    公众号 SAP Technical 本文作者 matinal 原文出处 http www cnblogs com SAPmatinal 原文链接 BW系列 SAP 讲讲BW 4 HANA和BW on HANA的区别 前言部分 大家可以关注我
  • 操作系统基础知识之处理器性能方程指标(包含阿达姆定律、CPI、Clock cycle time等)

    计算机设计人员通过持续时间或速率来指代时钟周期的时间 程序的 CPU 时间可以用两种方式表示 CPU 时间 程序的 CPU 时钟周期 时钟频率 除了执行程序所需的时钟周期数外 我们还可以计算执行的指令数 如果我们知道时钟周期数和指令数 就可
  • SpringBoot 日志框架

    SpringBoot日志框架 项目中日志系统是必不可少的的 目前比较流行的日志框架有log4j logback等 slf4j Simple Logging Facade for Java 则是一个日志门面框架 提供了日志系统中常用的接口 l
  • Windows System32下常见快捷指令

    Windows System32下常见快捷指令 win R 命令行窗口 cmd dos命令窗口 mstsc 远程登录输入窗口 calc 快速打卡计算器 control 打开控制面板 eventvwr 打开事件管理器 ipconfig ip查
  • spring_day01_IOC

    1 spring 概述 1 1 框架的概述 框架是一个封装了很多功能和模块的程序的半成品 可以理解为一个由很多工具类组成的一个工具包 1 2 spring的概念 spring是分层的JavaSE EE应用full stack轻量级开源框架
  • NOIP2016初赛总结(提高组)

    题目 https www zhihu com question 51865837 answer 127892121 注 我是HE的 不是JS的 照片是ZYJ神犇的 单选 一 单项选择题 共15 题 每题1 5 分 共计22 5 分 每题有且
  • ES索引库的别名的强大功能

    ES 的别名不停服切换索引 线上发布 场景 我们现在线上正在使用 ES索引库 V 没有使用ES索引库别名 两个问题 现在由于字段更新 把线上的数据重新写入了V1库 现在如何在不断服的情况下 完美的实现 从V 切换到V1 索引库 后续如果再次
  • 基于Matlab实现帧间差分法的运动目标检测(附上完整源码+图像+程序运行说明)

    帧间差分法是一种常用的运动目标检测方法 可以通过对连续帧之间的差异进行分析来确定目标的运动情况 在本文中 我们将介绍如何使用Matlab实现帧间差分法的运动目标检测 文章目录 部分源码 完整源码 图像 程序运行说明下载 部分源码 首先 我们
  • 离线安装npm包

    1 先在联网机器上下载安装npm bundle和http server 以管理员身份运行打开cmd 然后npm install npm bundle 或者 cnpm install npm bundle npm install http s
  • Springboot 封装Fastdfs 功能模块

    整体项目结构 第一步 BuleSky 的pom xml 文件
  • android apk应用系统集成编译错误问题

    在系统源码中添加一个APK源码目录 并写了相应的android mk文件 编译时出错如下 make No rule to make target out target common obj JAVA LIBRARIES liba71S in
  • ServletRequest和HttpServletRequest为什么可以强制转换

    ServletRequest强制转换为HttpServletRequest为什么没报错呢 先看一下普通转换 1 父类对象强转成子类 出错ClassCastException Father f new Father Son s Son f 2
  • 插入排序的递归算法

    一 算法思想 由插入排序的基本思想可以得到它的递归算法 确定前面的数是已经排好序了的 从当前数开始 依次一个个的插入到前面的数中 二 代码 插入排序的递归算法 void insert vector