C语言实现直接插入排序算法

题目:编写函数InsSort(a, n),完成对数组a[n]的直接插入排序。

算法思想

每次将一个待排序的元素按其关键字大小,使用顺序查找插入到前面已排好序的子序列中,直到全部元素插入完成成为一个整体有序的元素序列。

代码实现

void  InsSort (int a[], int n) {int i, j, temp;for (i = 1; i < n; i++) {   //从第二个元素开始,依次遍历数组中的每一个元素if (a[i] < a[i - 1]) {    //若某元素比它的前驱元素还要小,则将其插入到前面的有序子序列temp = a[i]; //用temp暂存a[i]元素for (j = i - 1; j > 0 && a[j] > temp; -- j) { //遍历有序子序列,直到找到temp应该插入的位置a[j + 1] = a[j];  //所有大于temp的元素都向后移动一位}//当判断 j 元素小于 temp时,跳出循环a[j + 1] = temp;   // j 后的一个位置就是temp应插入的位置,将temp复制到此处。

C语言实现直接插入排序算法相关推荐

  1. c语言三种插入排序算法

    一.直接插入排序:前面基本有序,小的往前插入 #include <stdio.h>int *Sort(int A[],int n){ /*直接插入排序精简版*/int i,j;for ( ...

  2. c语言 静态链表插入排序,数据结构C语言版 表插入排序

    西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...

  3. c语言插入排序算法伪代码,排序算法——插入排序(C语言实现)

    原理 默认数组的第一个数据是有个有序数组,由于只有一个数据,肯定是有序队列.从乱序数组的第二个位置开始,与之前的有序数组中的数据依次作比较,找到合适的位置将该数据插入有序数组,直到将最后一个数据插入有 ...

  4. 动图图解C语言插入排序算法,含代码分析

    C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...

  5. 2-路插入排序c语言算法,浅谈2路插入排序算法及其简单实现

    2路插入排序算法是在直接插入排序算法的基础上增加了一个辅助数组,其目的是减少排序过程中的移动次数,需要增加n个记录的辅助空间. 难点可能在于对取余的考虑吧,可以把辅助数组看成一个环状空间,这样就能更好 ...

  6. c语言插入排序算法_插入排序算法,流程图和C,C ++代码

    c语言插入排序算法 In the last article, we discussed about the bubble sort with algorithm, flowchart and code ...

  7. 2-路插入排序c语言算法,浅谈2路插入排序算法及其简单实现分享

    2路插入排序算法是在直接插入排序算法的基础上增加了一个辅助数组,其目的是减少排序过程中的移动次数,需要增加n个记录的辅助空间. 难点可能在于对取余的考虑吧,可以把辅助数组看成一个环状空间,这样就能更好 ...

  8. 用c语言编写插入排序算法,C语言实现常用排序算法——插入排序

    插入排序是最基础的排序算法,原理: 首先1个元素肯定是有序的,所以插入排序从第二个元素开始遍历: 内循环首先请求一个空间保存待插入元素,从当前元素向数组起始位置反向遍历: 当发现有大于待插入元素的元素 ...

  9. c++排序算法ppt_C/C++学习教程:C语言排序算法—插入排序算法

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

最新文章

  1. 六一欢乐赛 考试总结
  2. 优良中差五个等级英文表达_25道题测出你的英文水平,太准了!
  3. 大连理工优化方法matlab,大连理工大学2016年秋季优化方法大作业.pdf
  4. PPAS数据库备份与恢复
  5. 机器学习常见面试题整理
  6. No converter found capable of converting from type
  7. Linux从初学到精通
  8. 书单|互联网企业面试案头书之数据分析师篇
  9. Apache commons-text和Configuration 命令执行CVE-2022-42889/CVE-2022-33980分析
  10. 【C语言】英雄联盟英雄查询系统(源码)
  11. 海洋技术课设遥感反演matlab,国家重点研发计划项目“新型海洋微波遥感探测机理模型与应用研究” 课题一“微波极化遥感机理与应用技术”学术研讨会顺利召开...
  12. 为谷歌浏览器Chrome创建多个用户
  13. Java中求珠穆朗玛峰问题
  14. 按着Phoenix Framework文档练个手,感受一下Elixir语言。
  15. c语言 udp 解包_Socket拆包和解包
  16. 极飞P20植保无人机测评
  17. Tensorflow学习之tf.keras(一) tf.keras.layers.BatchNormalization
  18. Java_[倒置字符串]将一句话的单词进行倒置,标点不倒置。
  19. 微信小程序图片转换成文字_微信小程序中用canvas将文字转成图片,文字自动换行...
  20. 看完张一鸣近十年微博,我总结了这些成长特质

热门文章

  1. 免费采购门户 免费采购平台 免费微平台 免费商城入驻有哪些 2018年热门资源
  2. 慎点,大佬问答系列|面霸如何养成
  3. 吴军,信息论40讲,13,信息正交性:在信息很多的情况下如何做决策
  4. w311m linux驱动下载,腾达W311M无线网卡驱动mac版下载_腾达W311M无线网卡驱动mac版官方下载-太平洋下载中心...
  5. 程序员,用NuGet管理好你的包包(转)
  6. git 提交代码 到 gitee 或 github仓库指定文件夹中
  7. MES系统选型与价格有什么关系
  8. JS调用浏览器不能全屏适应A4纸解决办法
  9. 孕妇php是什么意思,孕妇梦见湖是什么意思?怀孕梦见大湖代表什么
  10. 理解CPU steal time