几种常见的排序算法---插入排序

本文详细介绍了排序算法中的直接插入排序与希尔排序的基本思想、Java语言实现代码及各自特点。直接插入排序通过逐步插入数据元素来实现排序,而希尔排序则通过将数据分为多个小组并进行直接插入排序,最后小组间排序完成整个排序过程。文章提供代码实例,帮助读者理解算法实现,并强调了希尔排序在处理基本有序序列时的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,直接插入排序

     其基本思想是:
        顺序地把待排序的数据元素按其关键字值的大小插入到已排序数据元素子集合的适当位置。

Java语言实现代码:


, 希尔排序

      1、基本思想:把整个待排序的数据元素分成若干个小组,对同一小组内的数据元素用直接插入法排序;
      小组的个数逐次缩小,当完成了所有数据元素都在一个组内的排序后排序过程结束。
     2、技巧:小组的构成不是简单地“逐段分割”,而是将相隔某个增量dk的记录组成一个小组,让增量dk逐趟缩短(例如依次取5,3,1),直到dk=1为止。
     3、优点:让关键字值小的元素能很快前移,且序列若基本有序时,再用直接插入排序处理,时间效率会高很多。

Java语言实现代码:

     

    如果小弟的代码有bug的话还希望大家指出来,共同探讨交流学习!,

    转载请注明出处!

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值