插入排序的动画展示与实现

news2024/9/28 5:28:30

排序学习思路:先实现单趟逻辑,在实现整体逻辑;先解决普遍情况,再解决特殊情况。

什么是插入排序

回忆下自己玩扑克牌的时候是怎么把手上的牌理顺的吧!其实那就是插入排序,从左边往右边,把一张张抽出来在左边插入到它适合的位置。

插入排序的特点是:完成插入动作的牌之间的是有序的,如下面动图中,开始插入7时,它前面插入过的3,5,9是有序的;开始插入2时,它前面插入过的3,5,9,7之间是有序的。

插入排序图解

排序前

排序过程

排序后

代码实现

#include <stdio.h>

void InsertSort(InSoDataType* a, int n)
{
	//n个元素的数组,下标范围[0, n-1]
	for (int p = 0; p < n; ++p)
	{
		//[0, end]有序,把a[end + 1]插入到前面序列
		int end = p;
		InSoDataType tmp = a[end];
		while (end > 0)
		{
			if (tmp < a[end - 1])
			{
				a[end] = a[end - 1];
				--end;
			}
			else break;
		}
		a[end] = tmp;
	}
}

void PrintfArr(int* a, int n)
{
	for (int i = 0; i < n; ++i)
		printf(" %d ", a[i]);
	printf("\n");
}

int main()
{
	int arr[] = { 3, 5, 9, 7, 2, 1 };
	int arrsize = sizeof(arr) / sizeof(arr[0]);
	InsertSort(arr, arrsize);
	PrintfArr(arr, arrsize);

	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2089141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

强烈推荐!大模型辅助软件开发

图书推荐 作者介绍 很喜欢作者在书上的这句话了&#xff1a;是人类工程师的能力&#xff0c;而不是大模型的能力&#xff0c;决定了大模型协作式开发的上限。 本书内容 软件开发正在经历一场前所未有的范式变革。人工智能的飞速发展&#xff0c;特别是大型语言模型所取得的成…

【Python篇】Python 类和对象:详细讲解(上篇)

文章目录 Python 类和对象&#xff1a;详细讲解1. 什么是类&#xff08;Class&#xff09;类的定义 2. 什么是对象&#xff08;Object&#xff09;创建对象 3. 属性和方法属性&#xff08;Attributes&#xff09;方法&#xff08;Methods&#xff09;在类中定义属性和方法使用对…

使用facebook开源prophet模型预测上证指数etf股价

可以图个乐&#xff0c;没有那么准确&#xff0c;可能还需要更深入的研究分析 蓝线是预测的2024年的走势&#xff0c;绿线是实际走势&#xff0c;红线是历史和未来的分界线。结果上有蛮多差异的。 # 测试预测2024年 coded by luke 伊玛目的门徒 import akshare as ak impor…

基于Java的心灵治愈交流平台

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;Java语言&#xff1b;Spring Boot框架 工具&#xff1a;IDEA/Eclipse、Navicat 系统展示 首页 心…

美畅物联丨实时通信新篇章:Spring Boot与WebSocket的深度融合实践

在当今 Web 应用开发领域&#xff0c;实时通信功能已跃升为不可或缺的基石&#xff0c;特别是在即时消息传递、沉浸式在线游戏体验以及精准实时数据监控等关键领域。WebSocket协议&#xff0c;凭借其独特的全双工通讯机制&#xff0c;在单个持久连接上实现了服务器与客户端之间…

软件测试面试题「值得收藏」

1、B/S架构和C/S架构区别&#xff1f; 1、架构不同&#xff1a;B/S架构是浏览器/服务器架构&#xff0c;C/S架构是客户端/服务器架构。 2、客户端不同&#xff1a;B/S架构的客户端是浏览器&#xff0c;C/S架构的客户端是客户端程序。 3、功能不同&#xff1a;B/S架构主要用于…

PhpStorm2024版设置自动换行(软换行)

Settings > Editor > General > Soft Wraps 选中并加上对应的文件

链动2+1小程序定制开发在餐饮品牌重塑中的应用探索——以“妈妈饺子馆”为例

摘要&#xff1a;随着互联网技术的飞速发展&#xff0c;餐饮业正经历着前所未有的变革。传统餐饮企业如何在激烈的市场竞争中脱颖而出&#xff0c;成为行业关注的焦点。本文以“妈妈饺子馆”为例&#xff0c;探讨链动21小程序定制开发在餐饮品牌重塑中的应用&#xff0c;特别是…

8 大模型微调

大部分接触大模型的同学大家可能都受限于资源的限制&#xff0c;无法对大模型重新训练。那么如何解决这一困境&#xff1f;我们暂且假定大模型为通用化模型&#xff0c;但是在某一方面的专业领域知识却不强&#xff0c;如果使用专业领域知识重新训练调整&#xff0c;这对资源还…

如何选到好的宠物空气净化器?有没有推荐的品牌?

从最初的手忙脚乱、对宠物养护知识一无所知的新手小白&#xff0c;到如今能够游刃有余地处理各种宠物问题、养宠多年的资深铲屎官&#xff0c;这么久&#xff0c;我也积累了不少的经验&#xff0c;就是希望能为自家的毛孩子提供最健康、最适合的生活。 这么久的养猫历程遇见的…

tcp/udp 可视化 调试工具; tcp/udp 发送客户端;查看tcp连接;netassist;packet sender;tcp view;

前言 最近对接物联设备&#xff0c;物联设备会往java端传送数据&#xff0c;在联调前&#xff0c;问厂商要来了样例数据&#xff0c;然后就找到了netassist和packetsender两款tcp发送工具&#xff0c;来模拟请求&#xff1b;还用tcpview来查看建立的连接。 netassist netass…

BERT:Pre-training of Deep Bidirectional Transformers forLanguage Understanding

个人觉着BERT是一篇读起来很爽的论文 摘要 我们引入了一种新的语言表示模型BERT&#xff0c;它代表Bidirectional Encoder Representations from Transformers。与最近的语言表示模型不同(Peters et al.&#xff0c; 2018a;Radford et al.&#xff0c; 2018)&#xff0c; BER…

52.x86游戏实战-XXX获取房间坐标

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

【Docker】个人笔记

文章目录 Docker三个基本概念镜像(Image)容器(Container)仓库(Repository) Docker命令基础命令查看版本信息显示详细信息从仓库拉取镜像列出本地存储的镜像删除一个或多个镜像列出所有运行中的容器运行一个新的容器停止一个运行中的容器启动一个已停止的容器重启一个容器删除一…

论文泛读: DETRs Beat YOLOs on Real-time Object Detection

[toc[ DETRs Beat YOLOs on Real-time Object Detection 论文地址: https://openaccess.thecvf.com/content/CVPR2024/html/Zhao_DETRs_Beat_YOLOs_on_Real-time_Object_Detection_CVPR_2024_paper.html 代码地址: https://zhao-yian.github.io/RTDETR 动机 现状 YOLO系列因…

车联网技术在智能交通系统中的设计与实现(论文+源码)

1系统方案设计 根据系统设计需求&#xff0c;展开系统详细方案设计。如图2.1所示为系统设计结构框图。系统以STM32单片机为主控制器&#xff0c;利用ATGM336 GPS模块实现车辆实时定位&#xff0c;借助倾斜检测模块监测车辆倾斜角度&#xff0c;并通过OLED液晶显示器实时显示监…

揭晓9款敏捷团队必备的协作工具选择

本文将介绍9款团队协作工具&#xff1a;1.Worktile&#xff1b;2. PingCode&#xff1b;3. 融云 (RongCloud)&#xff1b;4. 好团队&#xff1b;5. 微软Teams&#xff1b;6. 小钉贴&#xff1b;7. Lark&#xff1b;8. Bit.ai&#xff1b;9. Hive。 在敏捷开发团队中&#xff0c…

Veeam Backup Replication v12.2 发布,新增功能概述

Veeam Backup & Replication v12.2 发布&#xff0c;新增功能概述 Veeam Data Platform | 面向混合云和多云的 备份和恢复 监控和分析 恢复编排 请访问原文链接&#xff1a;https://sysin.org/blog/veeam-backup-12/&#xff0c;查看最新版。原创作品&#xff0c;转载请保…

烂大街的测试左移和右移

01 测试左移与右移的定义 通俗的讲&#xff1a;左移是往开发阶段移&#xff0c;右移是往发布之后移。 正常测试&#xff1a;提测后的测试工作——到——发布验证完成阶段。 测试左移&#xff1a;提测之前的测试。 如&#xff1a;代码单元测试&#xff0c;代码质量检测&#x…

数据结构的三要素以及数据类型和抽象数据类型

一.数据结构的三要素&#xff1a; 二.逻辑结构&#xff1a; 三.数据的运算&#xff1a; 三.数据的物理结构&#xff08;存储结构&#xff09;&#xff1a; 1.数据的存储结构&#xff1a;有4种 顺序存储 链式存储 索引存储 散列存储 注&#xff1a;顺序存储数据之间必须相…