插入排序算法

本文介绍了数据结构课程中三种常见的插入排序算法:直接插入排序、折半插入排序和希尔排序。直接插入排序是基础,通过顺序查找找到元素应插入的位置。折半插入排序使用二分查找提高效率。希尔排序则通过缩小增量分组应用直接插入排序,正序时效率最高。文章提供了C/C++实现,并强调实践对于理解排序算法的重要性。
摘要由CSDN通过智能技术生成

数据结构课程中的插入排序算法:本篇文章主要记录总结三种简单常见的插入排序算法(直接插入排序,折半插入排序,希尔排序)的基本思想和简单实现。

插入排序:

在排序算法中,数据结构课程中常见的三种插入排序算法是:直接插入排序折半插入排序希尔排序。插入排序算法的基本思想是:从给定的一个关键字序列中,每排序一趟就将一个待排序的元素,按照其关键字值的大小插入到已经排好序的部分文件中,直到全部值都插入完成,排序结束;其中,不同的插入排序方法,建立第一个排好序的部分文件的方法不同。插入排序与初始数据序列顺序有关,当初始序列越接近正序,性能越好。

下面依次介绍这三种插入排序:

1、直接插入排序

思想:最简单的排序方法,对于给定的一个关键字序列,将它的第一个元素作为一个排好序的部分文件,然后将后面的元素一个个的按照关键字大小插入到这个序列中,插入完毕之后排序结束;在指定元素插入到部分有序文件时,先对文件进行查找,找到元素应该插入的位置,然后将元素插入其中。

用C/C++实现的对含n个元素的一维数组的排序算法如下:

//直接插入排序
void InsertSort1(int a[],int n)
{
        int i,j,temp;
        //从第二个元素开始插入
        for(i=1;i<n;i++)
        {
                temp=a[i];
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值