打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java排序算法详解—— 二分插入排序

  二分插入排序Binary Insert Sort

  概念:

  二分(折半)插入排序是一种在直接插入排序算法上进行小改动的排序算法。其与直接排序算法最大的区别在于查找插入位置时使用的是二分查找的方式,在速度上有一定提升。

  原理:

  总共有N个元素,当插入第i个元素时,对前面的0~i-1个元素进行折半,先跟他们中间的那个元素比,如果小,那么再对前半折半,否则对后半进行折半,知道左右,然后再把第i个元素前一位于目标位置之间的所有元素后移,再把第i个元素放在目标位置上。

  关说原理可能大家不是很理解,下面我们就用一个列子来详细说明一下:

  例如:我们当前数组为[4 5 7 10 29 11]

  已知当前0到第N-1个都是按顺序排序,现在对第N个11找对应位置。

  第一趟

  11比中间M大

  那么接下来第二趟为:

  11比中间M大

  那么11的位置就在M+1这个

  注意,我们这里的第0到第N-1已经是按照要求排好序的

  代码:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
排序算法
Python|调换位置来排序
order — 改变元素的位置排序
算法系列: 10大常见排序算法(2) 选择排序
9.3.2 冒泡排序算法
5分钟了解折半插入排序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服