插入排序

发布时间:2022-07-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了插入排序脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一、排序演示

1、3跟44比较,44大不动

插入排序

2、38跟44比较,38小往前移

插入排序

3、38跟3比较,3小不动

4、5跟44比较,5小往前移,跟38比较,5小往前移,5跟3比较,3小不动

插入排序

二、代码

// 插入排序,作者:c语言网(www.freecplus.net)码农有道。
#include <stdlib.h>
#include <stdio.h>

// 参数arr是待排序数组的首地址,len是数组元素的个数。
void insertsort(int *arr,unsigned int len)
{
  if (len<2) return; // 数组小于2个元素不需要排序。

  int itmp;  // 当前需要排序的元素的值。
  int ii;    // 需要排序元素的计数器。
  int jj;    // 插入排序时,需要后移元素的计数器。

  for (ii=1;ii<len;ii++)
  {
    ITmp=arr[ii];    // 待排序元素

    // 从已排序的最右边开始,把大于当前排序的元素后移。
    // for (jj=ii-1;(jj>=0&&arr[jj]>itmp);jj--)
    for (jj=ii-1;jj>=0;jj--)
    {
      if (arr[jj]<=itmp) break;

      arr[jj+1]=arr[jj]; // 逐个元素后移。
    }

    arr[jj+1]=itmp; // 插入当前排序元素。
  }
}


int main(int argc,char *argv[])
{
  int arr[]={44,3,38,5,47,15,36,26,27,2,46,4,19,50,48};
  int len=sizeof(arr)/sizeof(int);

  insertsort(arr,len);   // 调用插入排序函数数组排序。

  // 显示排序结果。
  int yy; for (yy=0;yy<len;yy++) PRintf("%2d ",arr[yy]); printf("n");

  // System("pause");  // widnows下的C启用本行代码。

  return 0;
}


脚本宝典总结

以上是脚本宝典为你收集整理的插入排序全部内容,希望文章能够帮你解决插入排序所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。