c语言插入排序_还有这种操作?C语言插入排序算法,一点就透

插入排序算法是所有排序方法中最简单的一种算法,其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中,最终得到的序列就是已经排序好的数据。

da97634048d70ceaa51628e801dbd754.png

更多C/C++资料群文件:569268376

直接插入排序是插入排序算法中的一种,采用的方法是:在添加新的记录时,使用顺序查找的方式找到其要插入的位置,然后将新记录插入。

很多初学者所说的插入排序,实际上指的就是直接插入排序算法,插入排序算法还包括折半插入排序、2-路插入排序,表插入排序和希尔排序等,后序文章都会一一讲到。

例如采用直接插入排序算法将无序表{3,1,7,5,2,4,9,6}进行升序排序的过程为:

  • 首先考虑记录 3 ,由于插入排序刚开始,有序表中没有任何记录,所以 3 可以直接添加到有序表中,则有序表和无序表可以如 1 所示:
8a664075659c1a358ec56d641f1ae8fa.png

图 1 直接插入排序(1)

  • 向有序表中插入记录 1 时,同有序表中记录 3 进行比较,1<3,所以插入到记录 3 的侧,如图 2 所示:
13a512e9f6f8f04e051815f4c7407f13.png

图 2 直接插入排序(2)

  • 向有序表插入记录 7 时,同有序表中记录 3 进行比较,3<7,所以插入到记录 3 的右侧,如图 3 所示:
ec502e0458e972bac4c8a8ce003e9583.png

图 3 直接插入排序(3)

  • 向有序表中插入记录 5 时,同有序表中记录 7 进行比较,5<7,同时 5>3,所以插入到 3 和 7 中间,如图 4 所示:
fbaa5dc8aa826074a16c26157e3e732c.png

图 4 直接插入排序(4)

  • 向有序表插入记录 2 时,同有序表中记录 7进行比较,2<7,再同 5,3,1分别进行比较,最终确定 2 位于 1 和 3 中间,如图 5 所示:
6b52a3b718cf6d07e8f4cf90f03e5752.png

图 5 直接插入排序(5)

  • 照此规律,依次将无序表中的记录 4,9 和 6插入到有序表中,如图 6 所示:
515d37b45dc494b888f422920ffc4cd8.png

图 6 依次插入记录4,9和6

直接插入排序的具体代码实现为:

#include //自定义的输出函数void print(int a[], int n ,int i){ printf("%d:

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

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

相关文章

Mac 如何操控远程的 Windows 电脑

文章目录使用 Remote Desktop Connection for mac 客户端第 1 步&#xff1a;Windows 电脑进行远程设置第 2 步&#xff1a;Windows 电脑设置管理员账号和密码第 3 步&#xff1a;获取 Windows 电脑的 IP 地址第 4 步&#xff1a;Mac 电脑安装远程桌面连接客户端第 5 步&#x…

map iterator_一个简单的Map Iterator性能测试

map iteratorJava Map性能有很多方面可以衡量&#xff0c;但是关键的一个是简单的单线程扫描。 这是一些针对Iterators和Java 8 Map.forEach()简单测试代码&#xff0c;以及一些图形结果。 1.性能测试困难 性能测试是一项非常困难的工作&#xff0c;精确的可重复性测试需要Jav…

学生用计算机中sto,STO 文件扩展名: 它是什么以及如何打开它?

STO 疑难解答常见的 STO 打开问题Ecru Software PRO100 不存在你尝试加载 STO 文件并收到错误&#xff0c;例如 “%%os%% 无法打开 STO 文件扩展名”。 如果是这种情况&#xff0c;通常是因为 你的计算机上没有安装 Ecru Software PRO100 for %%os%%。 由于您的操作系统不知道如…

MacBook 使用 Loopback 录屏和录音频(MacBook 录屏教程/录视频教程/Loopback 教程)

文章目录一、下载软体二、Loopback 界面介绍三、设置系统的声音输入/输出设备&#xff08;一&#xff09;设置声音输入设备&#xff08;二&#xff09;设置声音输出设备四、录制程序中选择声音输入设备五、开始录制一、下载软体 在網路上可以找到破解版的軟體 Loopback 二、L…

惠普照片打印软件_被看错的打印机?原来打印机还可以这么玩

孩提时代&#xff0c;经常弄丢试卷的小值君曾频繁地与打印店打交道&#xff0c;那是我最早接触打印机的时候。白驹过隙&#xff0c;时至当下&#xff0c;打印设备已然成为家庭不可或缺的部分。印象中&#xff0c;打印机要不就是打打文档&#xff0c;要不就是打打照片&#xff0…

dagger2 注入_使用Dagger 2在GWT中进行依赖注入

dagger2 注入依赖注入是一种软件开发概念&#xff0c;其中为对象提供了创建所需的所有对象或值。 GWT用户已经熟悉GIN&#xff0c;但已经不推荐使用此工具&#xff0c;因此不再支持它&#xff0c;因此使用GIN的应用程序当前确实需要告别。 Dagger是GWT的新依赖注入框架。 对于那…

oracle创建一个表同已存在表结构一样

oracle创建一个表同已存在表结构一样&#xff08;或者同时将数据导入&#xff09; –只是建立ta表&#xff0c;与emp表结构相同&#xff0c;并不添加数据 –这种构造与现存表相同结构的表&#xff0c;是不会将comment带过来的 create table ta as select * from scott.emp wh…

周敏教授计算机编码与密码学,中国科学院计算机与控制学院博士生导师:张玉清教授...

张玉清 男 博导 信息科学与工程学院电子邮件&#xff1a;zhangyqgucas.ac.cn通信地址&#xff1a;北京石景山区玉泉路19号甲邮政编码&#xff1a;100049部门/实验室&#xff1a;计算机与控制学院职务: 教授&#xff0c;副院长电子邮箱: zhangyqucas.ac.cn研究方向:计算机网络&a…

戴尔G3笔记本使用U盘重装操作系统

戴尔G3笔记本 下载安装大白菜U盘启动盘制作软件根据使用说明完成启动盘制作下载操作系统ISO文件重启电脑&#xff0c;连续按F12&#xff0c;打开如下界面后选择红色线框选项&#xff1a; 进入PE系统界面&#xff0c;打开【大白菜】&#xff0c;看到如下界面&#xff1a;

华南理工网络教育计算机概论,2020年《计算机概论》平时作业华南理工网络教育学院.pdf...

计算机概论平时作业1. 简 述人工智能答&#xff1a;人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支&#xff0c; 它企图了解智能的实质&#xff0c; 并生产出一种新的能以人类智能相似的方…

python合并csv文件_Python学习——pandas 合并csv文件

import pandas as pd import os import re import numpy as np Folder_Path rC:/Users/Cable-Ching\Desktop/New folder/New folder # 要拼接的文件夹及其完整路径&#xff0c;注意不要包含中文 SaveFile_Path rC:/Users/Cable-Ching\Desktop/New folder/New folder # 拼接后…

ebook_[EBOOK]十大Java性能问题

ebook有兴趣了解更多吗&#xff1f; 然后&#xff0c;您应该在此处下载相关的电子书。 Java中的大多数性能问题都可归因于少数根本原因。 当然&#xff0c;偶尔会有一些奇怪的极端情况突然出现&#xff0c;并在应用程序中造成严重破坏&#xff0c;但是在大多数情况下&#xff…

macOS下的视频格式转换器

1-Click Video Converter Total Video Converter Pro

valid floating point value什么意思_为什么 0.1 + 0.2 = 0.300000004?

往期热门文章&#xff1a;1、《往期精选优秀博文都在这里了&#xff01;》2、求求你&#xff01;数据库不要再使用外键了&#xff1f;3、还在写慢SQL&#xff1f;4、ELK太笨重了&#xff1f;想放弃&#xff1f;快试试日志系统新贵Loki吧&#xff01;5、谁再悄咪咪的吃掉异常&am…

用计算机处理信息教学反思,《人工智能处理信息》教学反思

作业内容《用智能工具处理信息》教学反思《用智能工具处理信息》的学习目标是&#xff1a;1.初步了解人工智能的概念。2.知道人工智能的两个研究领域“自然语言理解”和“模式识别”3.能够辨别“自然语言理解”与“模式识别”的区别。在教学的过程中重视学生学习兴趣的调动。课…

在抽象类中可以没有抽象方法_是否可以在最终课程中使用抽象方法?

在抽象类中可以没有抽象方法这是最近在Java开发人员工作面试的电话面试中向我的一位读者提出的有趣的Java核心问题之一。 即使他知道你 无法用Java将抽象类定型为final &#xff0c;他对方法的措辞感到困惑。 答案很简单&#xff0c;不&#xff0c;在Java的最终类中不可能有抽…

python二维列表排序_使用Python按顺时针方向排序二维坐标列表?

这应该说明问题&#xff0c;给出一个可视化工具 但对于在同一距离上获得一组点的正确入口点来说&#xff0c;这并不总是有效的import random import pylab import cmath from itertools import groupby pts [(random.randrange(-5,5), random.randrange(-5,5)) for _ in range…

如何维护笔记本电脑的电池

如何保护笔记本电池&#xff1f; 笔记本电脑尽量插电源使用&#xff0c;每个月对电池充电放电1~3次&#xff0c;放电时电量不要低于20%&#xff0c;现在笔记本电脑的电池都有过充保护机制&#xff0c;电池充满了就不会再继续充电&#xff0c;插着电源使用的是电源的电量&#…

微型计算机生产工艺,bb肥生产设备制造工艺流程

原标题&#xff1a;bb肥生产设备制造工艺流程BB肥生产设备与有机肥设备相比较而言设备相对简单&#xff0c;因而BB肥便具有投资小的优点&#xff0c;而且因其配方灵活&#xff0c;非常适合我国正在推广的测土配方肥的需要&#xff0c;是一种非常适合我国国情的肥料。在发达国家…

nodejs异步测试_异步过程的自动化测试

nodejs异步测试自从我开发了具有异步行为的服务器端应用程序以来已经有一段时间了&#xff0c;而该行为还不是事件驱动的系统。 异步行为始终是设计和测试中一个有趣的挑战。 通常&#xff0c;异步行为不应该很难进行单元测试–毕竟&#xff0c;动作的行为不一定必须在时间上进…