博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
直接插入排序算法
阅读量:6096 次
发布时间:2019-06-20

本文共 1586 字,大约阅读时间需要 5 分钟。

数据结构中的排序算法有好几种,对其中的直接插入排序算法 总结如下所示:

直接插入排序即是:顺序地把待排序的各个记录按其关键字插入到已排序后的适当位置处。

实例如下所示:

定义的数组   :      {23,34,56,78,65,90,88,92,18,21}

过程如下所示:

【23】   34   56   78   65   90   88   92   18   21

第 1 次排序结果:   【23   34】   56   78   65   90   88   92   18   21    

——用34插入到【23】序列中,34>23,故插入后的顺序是【23,34】

第 2 次排序结果:   【 23   34     56 】78   65   90   88   92   18   21   

——用56插入到【23,34】序列中,56>34,故插入后的顺序是【23,34,56】

第 3 次排序结果:   【23   34      56    78】65   90   88   92   18   21   

——用78插入到【23,34,56】序列中,78>56,故插入后的顺序是【23,34,56,78】

第 4 次排序结果:   【23   34     56     65   78 】90   88   92   18   21    

——用65插入到【23,34,56,78】序列中,65<78,所以78后移一位,和56比较,65>56,故插入后的顺序是【23,34,56,65, 78】

第 5 次排序结果:   【23   34   56   65   78   90 】  88   92   18   21

——用90插入到【23,34,56,65, 78】序列中,78<90 ,故插入后的顺序是【23   34   56   65   78   90 】

第 6 次排序结果:   23   34   56   65   78   88   90   92   18   21

——用88插入到【23   34   56   65   78   90 】序列中,92>88 ,所以92后移一位,故插入后的顺序是【23   34   56   65   78   88   90】

第 7 次排序结果:   23   34   56   65   78   88   90   92   18   21

——用92插入到【23   34   56   65   78   90 】序列中,90<92 ,故插入后的顺序是【23   34   56   65   78   90   92 】

第 8 次排序结果:   18   23   34   56   65   78   88   90   92   21

——用18插入到【23   34   56   65   78   90   92 】序列中,18<92,所以92后移一位,和90比较,90>18,依次后移,直到第一位23,因为18<23, 故插入后的顺序是【18   23   34   56   65   78   88   90   92】

第 9 次排序结果:   18   21   23   34   56   65   78   88   90   92

——用21插入到【23   34   56   65   78   90   92 】序列中,21<92,故92后移一位,和90比较,90>21,依次后移,直到第一位18,因为18<21, 故插入后的顺序是【18   21   23   34   56   65   78   88   90   92】

----------------

以上为直接插入排序算法的具体实例分析:

使用java语言实现的程序如下:

package com.three.twelen;public class TestInsert01 {    /**     * 实现直接插入排序算法     */public static void showData(int a[]) {        for(int i=0;i
=0&&temp

以上为程序实现:

代码精简之后如下所示:

for( i=1;i
=0&&temp

程序具体运行结果为:

至此,直接插入排序结束!

转载于:https://www.cnblogs.com/guopengxia0719/p/10520561.html

你可能感兴趣的文章
自我介绍&友情链接
查看>>
我的友情链接
查看>>
修改mysql用户密码
查看>>
Windows Server 笔记(五):DHCP(2)
查看>>
查看Linux下网卡状态或 是否连接
查看>>
Firefox vimperator vi 快捷键
查看>>
【转】[教程] CSS入门3:如何插入CSS样式
查看>>
安装数据库提示无法解析机器名处理
查看>>
我的友情链接
查看>>
用Python的Turtple画图形
查看>>
浅谈软件硬件联系
查看>>
Linux 防火墙 ,iptables
查看>>
关于ERP的基础知识(一)
查看>>
mfc的总结
查看>>
java 工程师面试题
查看>>
数据库oracle 11g 的启停操作
查看>>
数组的一些操作方法,如join(),split(),slice()等
查看>>
python3_redis随手学习笔记
查看>>
Django1.8 关于 静态文件配置
查看>>
linux异步信号handle浅析
查看>>