请您留下宝贵的建议吧:)
广西百色高中欢迎您!

| 网站首页 | 学校概况 | 软件下载 | 图片中心 | 雁过留声 | 视频资源 | 校长信箱 | 内 部 网 |
| 同 学 录 | 网络办公 | 教学课件 | 优秀教案 | 试卷下载 | 教学素材 | 教学论文 | 电子图书 |

 
您现在的位置: 广西百色高中校园网 >> 学校概况 >> 学生频道 >> 信息技术 >> 精典程序 >> 文章正文 用户登录 新用户注册
   
   

插入排序算法          【字体:
插入排序算法
作者:仔仔    文章来源:本站原创    点击数:    更新时间:2006-9-26

通过学习上述两种方法可以了解排序的基本思想,也可以对任何一个无序数组作出从大到小(降序)或从小到大(升序)的排列。现在假设有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。

题目:A数组中有N个数据,按从小到大的顺序排列,输入一个数X,把X的值插入到数组A中,使得插入后的A数组仍然按从小到大排列。

那么这个问题的解决算法就是:

1)、通过比较大小找到X应插入的位置,假如应该放在第I个位置;

2)、把从I开始的(包括I)的所有数组元素依次向后移动一个位置,即A[I+1]:=A[I];

3)、A[I]:=X

代码如下:

          program charu(input,output);

          var

             a:array[1..11] of integer;

             x,I,j,n:integer;

             f:Boolean;

          Begin

             {给数组赋一个已经排序好的初值,A[1]A[10]分别等于110}

For I:=1 to 10 do A[I]:=I

Writeln(‘数组原来的排列值是:’)

For I:=1 to 10 do writea[I]:4;

Writeln;

Writeln(‘输入一个整数:’);

Readln(x);

F:=false;

I=0N=10

Repeat

  I:=I+1;

  If a[I]>x then f:=ture;

 Until I>n or f=ture;

J:=n+1;

While j<>I do

   begin

A[j]:=a[j-1];

J:=j-1

                   End;

A[I]:=x;

Writeln(‘ 插入一个数后的数组排列值是:’);

For I:=1 to n+1 do

   Write(a[I]:4)

End.

注意:此排序方法要求数组一定要有足够的预留空间来容纳插入后的数据。

文章录入:qinjun    责任编辑:qinjun 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
          最新热点       最新推荐       相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

       
     
     
     
    广西百色高中欢迎您!   网站地图 | 联系站长 | 友情链接 | 用户排行 | 版权申明 | 管理登录
    版权所有 Copyright© 2005-2010 广西百色高中 (桂ICP备05013955号)
    学校地址:广西百色市城乡路93号 电话号码:0776-2824142 传真:0776-2847293 邮政编码:533000
    站    长:覃钧  QQ:75331465            改版时间:2007年8月20日