C语言:简单的插入排序 您所在的位置:网站首页 2304算法 C语言:简单的插入排序

C语言:简单的插入排序

2023-11-14 13:42| 来源: 网络整理| 查看: 265

Description 排序,顾名思义,是将若干个元素按其大小关系排出一个顺序。

形式化描述如下:有n个元素a[1],a[2],…,a[n],从小到大排序就是将它们排成一个新顺序a[i[1]]< a[i[2]]< …< a[i[n]] ,i[k]为这个新顺序。

插入排序,顾名思义,是通过插入操作完成排序。其直觉和方法来源于打牌时安排牌的方法。每次摸起一张牌,你都会将其插入到现在手牌中它按顺序应在的那个位置。插入排序每一步都类似这个摸牌过程。

比如现在有整数数组:{3, 1, 5, 4, 2}

第一步:插入3 得到新序列{3}

第二步:插入1 得到新序列{1 3}

第三步:插入5 得到新序列{1 3 5}

第四步:插入4 得到新序列{1 3 4 5}

第五步:插入2 得到新序列{1 2 3 4 5}

为了看程序中如何完成插入过程,我们以第五步为例:

初始时:1 3 4 5 2

将2存入临时变量tmp

将下标j指向2之前的元素5,然后根据tmp和a[j]的大小关系决定该元素是否应该后移。如果a[j]> tmp,则将a[j]后移到a[j+1],序列变成1 3 4 5 5。

将下标j前移

判断a[j]> tmp,后移a[j]到a[j+1],得到1 3 4 4 5

将下标j前移

判断a[j]> tmp,后移a[j]到a[j+1],得到1 3 3 4 5

因为a[j]< =tmp,所以将tmp放回a[j+1],得到 1 2 3 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有