算法 - InsertSort [插入排序]

选择排序(selectSort.cpp) 选择排序1:selectSort1.cpp 【题目描述】 给定整数n(待排序整数的个数)和k(选择排序的趟数)、以及n个待排序的整数,要求从小到大进行k趟选择排序,并输出第k趟选择排序后的结果,各整数之间用一个空格隔开。每趟排序从左到右扫描未排序数据,记录值最小的元素的下标,然后将最小的元素交换(移动)到未排序数据的左端。 【输入】 输入selectSort1.in的第一行有一个整数n(1 阅读详情

#include<iostream>
#include<cstring> 
using namespace std;
//1,2,3,4,5,4.5
//           k
//插入排序 
void insertsort(double a[],int k){
	if(k==0) return ;
	insertsort(a,k-1);     //对前k-1个元素排序 
	double x=a[k];            //保存插入元素
	int index=k-1;         //记录从插入元素的前一个(倒数第二个)元素 
	while(index>-1&&x<a[index]){
		a[index+1]=a[index];
		index--;	
	}
	a[index+1]=x;
}

int main(){
	double a[100]={
	1,3,2,43.6,5,3.5,43.213,43.212};
	int len=0;
	for(int i=0;i<100;i++){
		if(a[i]!=0) len++;
		else break;
	}
	insertsort(a,len-1);
	
	for(int i=0;i<len;i++){
		cout<<a[i]<<" ";
	}
}


排序算法 -- 插入排序(InsertSort) 一、插入排序思想 插入排序(Insertion Sorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。 二、插入排序图示 三、java 编写代码 package point... 阅读详情

相关推荐

5分钟搞定!Unity中Matcap玻璃材质快速实现(含免费贴图资源)

本文详细介绍了在Unity中快速实现Matcap玻璃材质的方法,从技术原理到实战操作,包括Shader编写、参数调节和性能优化。通过Matcap技术,开发者可以高效创建逼真玻璃效果,特别适合移动端和快速迭代项目。文章还提供了免费贴图资源和进阶优化技巧,帮助提升视觉效果和运行效率。

a1b2c的博客 219

【排序算法全解】之 - 插入排序(InsertSort)

1.算法原理 把第一个元素当成有序序列,然后把待排序序列的第一个值插入到有序序列中 下图蓝色方框里就是有序序列 2.分析过程和代码实现 2.1.排序趟数 由于是从第二个元素开始插入到有序序列,因此排序趟数为 n-1 2.2.每趟排序过程 每趟排序取待排序序列的第一个元素 ,从后向前依次与有序序列的值进行比较,若小于有序序列的值,则交换该两者交换,当有序序列的值小于该元素时,完成插入 例如排序数组 [5,2,3,4,1] 的过程如下图 按上述算法所编写的代码...

weixin_44882124的博客 3639

ComfyUI入门学习-教程篇

深入的 ComfyUI 教程,不同功能节点的详细指南。一个比较有意思的Comfyui教程,动画式学习。从安装到基础教程、高级教程再到各种工作流。非常全面,有教程有搭建好的工作流。

wincyfu的博客 1327

插入排序(Insertion Sort)

theory 原理讲解来源于文章 https://www.runoob.com/data-structures/insertion-sort.html 1、概念及其介绍 插入排序(InsertionSort),一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增 1 的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找

鱼香肉丝没有鱼的博客 1万+

sophgo sdk v23.03.01

C/C++程序建议在x86主机上使用交叉编译工具链编译生成可执行文件后,再拷贝到SoC目标平台运行。# 创建docker用户组,若已有docker组会报错,没关系可忽略。对于SoC模式,模型转换也需要在docker开发容器中完成;docker开发容器的配置参照前述章节相关内容。6、创建docker容器并进入Docker。# docker命令免root权限执行。# 将当前用户加入docker组。# 重启docker服务。# 安装 docker。3、安装docker。7、SoC 环境配置。

weixin_40723768的博客 914

ADS1220 STM32硬件SPI驱动程序

前一段时间温故了下标准库,使用的是F1系列芯片,测试程序。

随风飘零翼的博客 5770

插入排序(insertSort.cpp)

插入排序:insertSort.cpp 【题目描述】 给定整数n(待排序整数的个数)和k(插入排序的趟数)、以及n个待排序的整数,要求从小到大进行k趟插入排序,并输出第k趟插入排序后的结果,各整数之间用一个空格隔开。每趟排序从左到右扫描未排序数据,将起始(第一个)数据插入到左侧已有序的数据子序列的合适位置,如此反复,n趟插入排序后,所有数据均有序。 【输入】 输入文件insertSort.

AengusChen的博客 1624

避开命令行!在VMware vCenter 8.0图形化界面里搞定SSL证书续期全流程

本文详细介绍了在VMware vCenter 8.0图形化界面中完成SSL证书续期的全流程,包括计算机SSL证书、VMCA根证书和STS证书的管理。通过可视化操作,管理员无需使用命令行即可高效处理证书问题,确保vSphere环境的稳定运行。文章还提供了证书监控与预警配置的实用技巧,帮助用户提前规避证书过期风险。

weixin_27051161的博客 282

经典算法---插入排序 insert-sort

时间复杂度:O(n2)O(n^2)O(n2) 在算法导论中“算法分析”一节就是以“插入排序”为例分析的,已经分析的很清楚了,最好情况下,即已经排好序的情况下,只有外层循环,所以时间复杂度为O(n)O(n)O(n),但是如果正好是逆序,那么时间复杂度为O(n2)O(n^2)O(n2) 思想: 取待排序的牌,和已排序的手牌(从左到右依次变大)里最右边的牌开始比较大小,如果最右边的牌比待排序的牌大,那么...

终身学习的程序猿 1661

怎么选?一文读懂12种SPC控制图,从基础到进阶,再到Python代码实现

本文系统介绍了12种常用SPC控制图的应用场景和特点,包括计量型(Xbar-R图、Xbar-s图、I-MR图等)、计数型(P图、NP图、U图等)及进阶控制图(EWMA图、CUSUM图、多元控制图)。文章强调控制图是SPC的核心工具,能有效区分过程变异类型,实现"预防优于检测"的质量管理目标。通过数据示例和Python代码展示了各类控制图的实现方法,为质量管理人员提供了实用参考。

m0_56592100的博客 4141

Foxmail 7.2.25以下版本XSS漏洞实战复现:手把手教你如何构造恶意邮件(含防御方案)

本文深入解析Foxmail 7.2.25以下版本的XSS漏洞(CNVD-2025-06036),详细展示如何构造恶意邮件进行跨站脚本攻击,并提供从客户端升级到企业级防护的多层次防御方案,帮助用户有效防范安全风险。

view3的博客 163

InsertSort 插入排序算法

InsertSort 插入排序算法: 平均比较和移动次数为(n^2)/4,时间复杂度也为O(n^2) 直接插入排序比冒泡和简单选择排序的性能要好一些。 思路: 从第二个数开始遍历到最后一个数,如果当前的数小于前一个数,用tmp保存当前数,比较前面的数与tmp的大小, 如果比tmp大则将前面的数往后移动一位,最终将tmp存放在没有再比tmp数大的那个数的位置。 代码: //插入排序(排

Learn From The Masters 788

CANbus收发器ADM3053BRWZ-REEL7应用原理图设计

ADM3053 在 CAN 协议控制器与物理层总线之间创建一个 完全隔离的接口。该器件具有限流和热关断特性,可防止输出短路。额定温 度范围为工业温度范围,提供 20 引脚、宽体 SOIC 封装。该器件采用 5 V 单电源供电, 提供完全隔离的 CAN 解决方案。ADM3053 是一款隔离式控制器区域网络 (CAN) 物理层收 发器,集成隔离 DC/DC 转换器,符合 ISO 11898 标准。该器件采用 ADI 公司的。Coupler® 技术,将双通道隔离器、 CAN 收发器和 ADI 公司的。

zhusl6688的博客 1239

排序算法-插入排序 insertSort

插入排序,形式上最容易理解的排序,操作起来却有点复杂,毕竟不属于交换排序。在实现这个算法时,参考了以前学过的PPT的伪代码,用自己的语言实现了一下。 前面数据输入部分copy自我的另一篇文章(冒泡算法)的代码。 插入排序应该是从数组的第三位开始插入的,所以前两位的大小还是要手动判断一下。其核心思路是:待插入位(i)和前一位比较(i-1),若小于前一位,则把i放到temp里,i-1移到i的位置。

山水木人 466

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

排序算法-InsertSort-插入排序

1. 插入排序算法介绍有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序算法。插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。2. 算法流程插入算法把要排序的数组分成两部分:第一部分包含

Time is a choice 630

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

算法:插入排序_Insertsort

思路:将数组分为两个部分:前一部分为有序,后一部分为无序。将无序数组元素向有序数组中进行插入 设 j 为有序数组的最后一个元素;i为无序数组的最后一个元素。 稳定 时间复杂度 最好 o(n) 最坏 o(n^2) 平均 o(n^2) 使用场景:数组中的元素离最终位置不远的情况,而且数量尽量在 5-20之间比较合适。 #include<iostream> usingn...

Water_st的博客 247

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

插入排序算法(InsertSort)

//插入排序 #include #include using namespace std; int arr[] = { 23, 34, 523, 421, 31, 3465, 4, 2341 }; const int n = sizeof(arr) / sizeof(int); void InsertSort() { for (int i = 1; i < n; i++)//

优快云515的专栏 1185

算法之插入排序(insertsort)

算法之插入排序(insertsort) 原理 将无序的数组看作是一部分有序,一部分无序的,将无序数组按顺序遍历,插入到有序数列的合适位置中 直接插入步骤 ①在有序数列[ 0, i-1 ] 中找到合适的位置插入[ i ],假如是位置k ②将[ k , i-1 ] 之间的数据全部向后移一位 ③插入到位置k #include <vector> #include <iostream> using namespace std; class Solution{ public: const

WRRRRRR5的博客 268

一篇看懂插入排序InsertSort算法与代码

目录原理代码实现代码分析性能分析稳定性 原理 插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。插入排序是稳定的排序算法。 能用冒泡排序算法的必然能用插入排序。 插入排序时将整个区间被分为有序区间,和无序区间。每次选择无序区间的第一个元

weixin_45803426的博客 427

算法——插入排序(InsertSort)

插入排序的思路就是将一个记录插入到已经排好序的有序表中,从而得到一个新的,记录数增1的有序列表,具体步骤如下:(1)将原数组的第一个数看成是一个有序序列(2)取下一个元素,在已经排序的有序序列中从后向前扫描(3)如果有序序列中某元素大于新元素,则将该元素后移一位(4)重复步骤(3),直到某元素小于或等于新元素,然后将新元素插入到该元素下一个位置(5)重复步骤(2)~(4),直到得到一个长度等于原数...

u012194956的博客 374

算法学习—001—js实现插入排序—insertSort

插入排序:对于少量元素比较有效。 工作方式:像排序一手扑克牌,开始时,我们的左手为空并且桌子上的牌面向下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较,如图2-1所示。拿在左手上的牌总是排序好的,原来这些牌是桌子上牌堆中顶部的牌。 对于插入排序,我们将其伪代码过程命名为INSERTION-SOR

chenmoquan的专栏 6559

Java中的经典算法之插入排序(InsertSort)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34250709的博客 123

排序算法之插入排序(InsertSort)

  插入排序算是比较简单易懂的一种排序方法,和扑克牌排序类似。通俗来说就是每拿到一张牌,和手上的牌比较,插入到合适的位置,每次都是手上的牌已经排好序,从桌上随意拿一张插入其中,直到全部插入,排序完成。  桌上的牌就相当于我们要排序的一组数。插入排序采用的是原址排序的方法,省空间,所谓原址排序就是在原本的数组中操作,最多只有常数个数储存在数组外面。其实现算法如下:INSERTION-SORT(A) ...

菜鸟要努力鸭的博客 542

十大排序算法之插入排序(InsertSort)

一、前言 数据结构与算法,顺便刷leetcode,无意间发现了一个 我觉得讲解的比较好的网页,并且会拿leetcode里面的题目当做例题,如有需要,奉上网址:五分钟学算法 二、算法思想 假设序列的第一个数是有序的,然后将第二个数插入进来,如果比第一个数小,则插入到第一个数前面。 类似重复上述步骤,将新插入进来的数都放在正确的位置,直到序列全部有序。 三、算法的图解(图片来源于网络) 四、...

Cxf2018的博客 317

排序算法-插入排序法(InsertSort)

插入排序法是将数组中的元素逐一与已排序好的数据进行比较,先将前两个元素排序好,再将第三个元素插入适当的位置,也就是说这三个元素仍然是已排序好的,接着将第四个元素加入,重复此步骤,直到排序完成为止。可以看作是在一串有序的记录R1,R2,...,Ri中插入新纪录R,使得i+1个记录排序妥当。

Hank_W 1588

排序算法三:插入排序(InsertSort)

原理: 从第二个元素开始和前面的元素比较,如果小于前面的元素则交换位置 特点: 时间复杂度O(n^2) 空间复杂度O(1) 样本小且基本有序的时候效率比较高。需要用到简单排序时候,可以选择插入排序 代码 package com.yypt.algorithm.sort; import com.yypt.algorithm.utils.SortUtils; public class InsertSort { public......

半路出家的码农小王 233
上一篇: 图的应用(校园导航图最短路径求解)
下一篇: HDU1787-欧拉函数的简单应用
ଳxin
博客等级 码龄8年 83粉丝 197原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值