用C语言实现直接插入排序(附有详细代码)

2023-05-16

1.插入排序—直接插入排序(Straight Insertion Sort)

基本思想:

将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。

要点:设立哨兵,作为临时存储和判断数组边界之用。

直接插入排序示例:

456a32b5b6345e1aef59ecba02138d15.png

 

 

 

如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。

代码如下:

#include<stdio.h>

void print(int data[],int n)  //打印结果的函数 
{
	int i;
	for(i=0;i<n;i++)
	{
		printf("%d ",data[i]);
	}
	printf("\n"); 
}

void insertSort( int data[] ,int n )  //排序函数 
{
  
 /*----begin------*/
 int i,j;
 int t;
 for(i=1;i<n;i++)
 {
   t = data[i];
   j = i -1;
   while(j>=0 && data[j]>t)
   {
     data[j+1]=data[j];
     j--;
   }
   data[j+1] = t;
   print(data,n);         //显示排序的过程 
 }
 
 /*-----end------*/
}

int main()
{
	int data[8]={49,38,65,97,76,13,27,49};
	insertSort(data ,8);
	return 0;
} 

运行结果:

38 49 65 97 76 13 27 49
38 49 65 97 76 13 27 49
38 49 65 97 76 13 27 49
38 49 65 76 97 13 27 49
13 38 49 65 76 97 27 49
13 27 38 49 65 76 97 49
13 27 38 49 49 65 76 97

--------------------------------
Process exited after 0.02938 seconds with return value 0
请按任意键继续. . .

 

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

用C语言实现直接插入排序(附有详细代码) 的相关文章

  • 用定时器计数器计算初值

    只需要输入晶振频率 定时时长和计时方式 一般选择方式1 即可 如晶振为12MHz 定时时长为50ms 方式1 xff0c 即可计算出初值为3CB0 xff0c 如下图所示 总结 xff1a 定时器在单片机有着极其重要的作用 xff0c 利用
  • Linux系统管理---xfs文件系统--centos7

    目录 一 XFS文件系统 xff1a 1 数据区 xff08 data section xff09 2 文件系统活动登录区 xff08 log section xff09 3 实时运行区 xff08 realtime section xff
  • 中文code:blocks安装(三分钟包安装成功,不成功你找我)

    目录 一 下载code bocks压缩包并解压 a 百度网盘下载压缩包 xff08 不需安装了 xff09 b 创键快捷方式并拉到桌面 二 一步完成汉化 xff0c 两步完成调试环境 a 打开上面创建在桌面上的快捷方式 b 一步汉化 c 两
  • 2021-2022年度第三届全国大学生算法设计与编程挑战赛(冬季赛)题解(7道题)

    只有 xff1a B xff0c D xff0c E xff0c G xff0c I xff0c K xff0c L 正文 B xff1a 题目链接 Error 题目 xff1a 思路 xff1a 二分 二分给出一个d xff0c 先考虑第
  • mysql jar包下载(直接链接下载)

    mysql connector java 8 0 23 jar的下载链接 xff1a mysql jar包下载 服务器一年后过期 xff0c 过期的话先用百度网盘下载吧 链接 xff1a https pan baidu com s 187w
  • Druid-1.1.12.jar下载 (链接下载+使用)

    链接下载 xff1a 下载链接 不行的话用网盘下载 网盘下载 xff1a 链接 xff1a https pan baidu com s 1VUvRj VuxCDd3fb uvA8Q pwd 61 1111 提取码 xff1a 1111 下载
  • 第十三届蓝桥杯c++b组2022年国赛决赛题解

    写的不是很好 xff0c 8000 43 浏览量后开的粉丝可见 xff0c 希望涨一点点粉 觉得还阔以的 xff0c 就不要取关了Fight xff4f 39 39 题目pdf下载 xff1a 第十三届蓝桥杯大赛软件赛决赛pdf下载 G题没
  • OpenWrt 设置IP地址

    注 本文是基于Ubuntu14 04 43 Openwrt17 01开发的教程 5 1在开发板上设置IP 由于我们在开发过程中 xff0c 可能会用到其他路由器 xff0c 而它们的IP一般都是192 168 1 1 xff0c 为了让开发
  • java打包成exe(带图片,不放大)

    目录 一 如何把java程序打包成exe文件 二 过程 二 1 如何将java程序打包成jar包 二 2 如何使用软件exe4j将jar包打包成exe文件 三 如何在打包的时候带上图片和音乐 四 如何打包后不放大 五 如何把exe文件发送给
  • 【华为OD机试真题java、python、c++、jsNode】匿名信(100%通过+复盘思路)

    nbsp nbsp 代码请进行一定修改后使用 本代码保证100 通过率 本文章提供java python c jsNode四种代码 复盘思路在文章的最后 题目描述 电视剧 分界线 里面有一个片段 男主为了向警察透露案件细节 且不暴露自己 于
  • 第十四届蓝桥杯javaA组2023年省赛初赛题解

    题目pdf下载 xff1a 第十四届蓝桥杯省赛pdf下载 目录 试题 A 特殊日期 试题 B 与或异或 试题 C 平均 试题 D 棋盘 试题 E 互质数的个数 试题 F 阶乘的和 试题 G 小蓝的旅行计划 试题 H 太阳 试题 I 高塔 试
  • JsNode算法题acm模式输入

    js分为jsNode和JsV8两种输入输出方式 xff0c 一般的执行代码还是一样的 牛客是两种都支持 华为的题目大多只支持jsNode 本文主要介绍jsNode的输入 JsNode 首先他是逐行输入的 xff0c 就和py差不多 xff0
  • c++11 将enum转为字符串,将字符串转为enum

    一般用enum有两种情况 xff0c 一种是string类型方便 人 读 一种是int类型 xff0c 方便机器识别 所以 xff0c 很多情况 xff0c 需要把int转为string类型 xff0c 或者将string转为int类型 x
  • 手把手教你阿里云服务器搭建网站(超详细图文)

    前文概述 出于好奇 xff0c 我用学生优惠租了一台阿里云服务器 xff0c 打算做一些Java web的开发 xff0c 但是毕竟是第一次接触这样的东西 xff0c 还是比较陌生 xff0c 在这个过程中遇到了一些问题 xff08 肯定会
  • arm64位处理器Ubuntu18.04系统安装libpcap-dev

    1 背景需求 编译项目文件时需要包含头文件 xff1a include lt pcap h gt xff0c 但缺少对应的库 正常情况下 xff0c 打开终端 xff0c 输入下面这行指令即可解决 xff1a sudo apt get in
  • 指定JDK运行Jar包

    指定JDK运行Jar包 找到JDK安装路径如下路径 E Java javaJDK bin java exe正常运行Jar包为 java jar xxx jar指定jdk运行 E Java javaJDK bin java exe jar x
  • Anaconda3安装教程---图文讲解

    Hello xff0c 大家好 xff0c 我是霜淮子 xff0c 今天分享一篇Anaconda3的安装教程 软件介绍 Anaconda xff0c 中文大蟒蛇 xff0c 是一个开源的python发行版本 xff0c 其包含了conda

随机推荐