前言:数据结构概览之第八章排序整理

  插入排序

思想:

从待排关键字序列中的第二个关键字开始一直到最后的一个关键字结束,不论待排序的关键字是否有序,都要执行 len -1 次排序;

把当前的关键字currentElem用哨兵记录;

比较哨兵和currentElem之前的关键字的大小,并且适当的进行后移的操作;

到最后找到哨兵的位置,进行插入。

代码如下:

 1 /**
 2  插入排序
 3
 4  @param R 数组
 5  @param len 数组中元素个数
 6  */
 7 void insertSort(int R[],int len);
 8
 9 void insertSort(int R[],int len){
10     int i,j;
11     int temp;
12     for(i = 1;i < len;i ++){
13         j = i - 1;
14         temp = R[i];
15         while (j >= 0 && temp < R[j]) {
16             R[j+1] = R[j];
17             --j;
18         }
19         R[j+1] = temp;
20     }
21 }

View Code

测试函数以及输出:

1 int R[] = {1,2,-2,3,4,-3,0};
2         insertSort(R, sizeof(R)/sizeof(int));
3         for (int i = 0; i < 7; i ++) {
4             printf("%d\t",R[i]);
5         }
6 //        -3    -2    0    1    2    3    4    Program ended with exit code: 0

View Code

和课本不同之处:记得之前的课本上是用的一个"哨兵"来记录这个当前待排序的关键字,这里用temp的话原理是一样的;

参考资料:

数据结构高分笔记

数据结构严蔚敏版配套PPT

OS交流群欢迎你的加入!

群二维码:

先写到这么多

如有问题,敬请指正;

如需转载,请注明出处,谢谢!

转载于:https://www.cnblogs.com/ITCoderW/p/8006302.html

数据结构概览之第八章排序相关推荐

  1. 【数据结构总结】第八章 排序

    第八章 排序 提示:本文主要是以思维导图的形式概括数据结构第一章的精华内容,基本不会用到文字性的内容,目的是为了给大家梳理每个重要的知识点的相关概念,方便大家在复盘的时候快速阅读和浏览,加快记忆速度, ...

  2. 《数据结构》-第八章 排序(知识点总结)

    第八章 排序 排序作为各类数据结构的相应的运算的一种,在很多领域中都有广泛的应用.主要的排序方法有插入排序.交换排序.选择排序.二路归并排序.基数排序.外部排序等各类排序方法.堆排序.快速排序和归并排 ...

  3. 数据结构与算法:选择排序

    数据结构与算法:选择排序 雪柯 大工生物信息 提笔为写给奋进之人 已关注 8 人赞同了该文章 引用自算法图解,作者[美] Aditya Bhargava 译袁国忠 特别备注:本书非原创,但部分内容自己 ...

  4. 数据结构与算法之希尔排序

    数据结构与算法之希尔排序 目录 希尔排序介绍 希尔排序法的示意图 代码实现 1. 希尔排序介绍 简单插入排序存在的问题:当然需要插入的数是较小的数时,后移的次数明显增加,对效率有影响. 希尔排序法介绍 ...

  5. 数据结构与算法之选择排序

    数据结构与算法之选择排序 目录 基本介绍 选择排序思想 代码实现 1. 基本介绍 选择排序也属于内部排序法,是从排序的数据中,按指定的规则选出某一元素,再依次交换位置后达到排序的目的 2. 选择排序思 ...

  6. 算法日记-01-算法和数据结构概览

    算法日记-01-算法和数据结构概览 文章目录 算法日记-01-算法和数据结构概览 1.数据结构 2.算法 3.如何解题? 4.刷题方法 5.小结 1.数据结构 一维 基础:数组arry(string) ...

  7. 数据结构与就算法(选择排序)

    数据结构与就算法(选择排序) 数据!您好 2019-01-07 05:16:18 2736 收藏 17 版权 1>什么是选择排序,选择排序和插入排序的思想差不多,也分已排序区间和未排序区间,只是 ...

  8. 数据结构(八):排序 | 插入排序 | 希尔排序 | 冒泡排序 | 快速排序 | 简单选择排序 | 堆排序 | 归并排序 | 基数排序 | 外部排序 | 败者树 | 置换-选择排序 | 最佳归并树

    文章目录 第八章 排序 一.排序的基本概念 (一)什么是排序 (二)排序的应用 (三)排序算法的评价指标 (四)排序算法的分类 (五)总结 二.插入排序 (一)算法思想 (二)算法实现 (三)算法效率 ...

  9. 数据结构(九)——外部排序之外排序

    本博客基于对mooc中的<北京大学-数据结构与算法>及<西北大学-数据结构>的理解进行编写 置换排序 基于<西北大学-数据结构>置换排序的理解 在这里,我们先假设: ...

最新文章

  1. ORACLE学习第三天
  2. python中读取文件内容-Python读取文件内容与存储
  3. datagrid 重载本地数据_音视频系列3:使用ffmpeg + nginx搭建本地转发服务器
  4. 一个(伪)MaterialDesign风格的博客园皮肤
  5. 前端开发知识点解答-问题-面试问题
  6. EasyUI使用JSON保存数据
  7. DNS域名解析基础知识
  8. 模块ntdll中出现异常eaccessviolation_SAP ERP软件中的物料凭证 MIGO
  9. UINO优锘:DMV架构管理可视化,让架构图管理快速升级
  10. 如何利用 composer 替换第三方包里的某个类(color-thief-php为例)
  11. JWT的数据格式详解
  12. 基于小波分析的打鼾(阻塞性睡眠呼吸暂停)检测
  13. 多设备制造工厂的IIOT解决方案--基于虹科IO-Link Wireless
  14. 实现中文唇语识别的多种途径
  15. IT运维:服务器管理
  16. 理想低通滤波器、Butterworth滤波器和高斯滤波器
  17. Hexo博客发表文章、草稿、添加分类和标签
  18. Live555源码分析
  19. 计算机类论文摘要,★计算机应用类论文摘要范文计算机应用类论文摘要写
  20. 无线打印机服务器安装步骤,【DDwifi打印服务器】Windows 10系统添加打印机步骤(离线安装打印机驱动)...

热门文章

  1. sublime text 安装Package Control
  2. 计算机维护方面的知识和技巧,电脑硬件维护常识和方法【图文详解】
  3. pacs定位线_PACS中MR序列定位线的绘制
  4. illegal base64 character 3a_双11华硕多款产品再送豪礼 高端硬件通吃最新3A大作
  5. Xamarin Essentials教程获取路径文件系统FileSystem
  6. 压缩归档文件审查工具p7zip-full
  7. Kali Linux网络扫描教程(内部资料)
  8. html base64 本地图片,base64 html 图片
  9. 军事科学院医学研究院认知与脑科学研究团队2020年诚聘启事
  10. Python-EEG工具库MNE中文教程(2)-MNE中数据结构Epoch及其创建方法