本文的代码来自于《数据结构与算法(JAVA语言版)》,是笔者在网上找到的资料,非正式出刊版物。笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论。
  折半插入排序方法的思想是,先以第一个数为基准,作为一个有序的数列,依次把它后面的数字以折半的方式插入这个有序的数列。
  如下图所示:
  数组的前五位已经排好,现在要将1排序。
  
  


  Java具体实现代码:
  输入:数据元素数组r,数组r 的待排序区间[low..high]
  输出:数组r 以关键字有序
  代码:

public void binInsertSort(Object[] r, int low, int high){for (int i=low+1; i<=high; i++){Object temp = r[i]; //保存待插入元素int hi = i-1; int lo = low; //设置初始区间while (lo<=hi){ //折半确定插入位置int mid = (lo+hi)/2;if(strategy.compare(temp,r[mid])<0)hi = mid - 1;else lo = mid + 1;}for (int j=i-1;j>hi;j--) r[j+1] = r[j]; //移动元素r[hi+1] = temp; //插入元素}//for
}

数据算法之折半插入排序(binInsertSort)的Java实现相关推荐

  1. 数据算法之折半查找(binSearch)的Java实现

    本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. 折半查找的基本思想是在有序 ...

  2. 经典算法之折半插入排序法

    活动地址:21天学习挑战赛 文章目录 一.算法 1.算法概述 2.算法步骤 二.算法实践 1.Java代码 2.执行结果 三.复杂度分析 1.时间复杂度 2.空间复杂度 一.算法 1.算法概述 直接插 ...

  3. 数据算法之希尔排序(shellSort)的Java实现

    本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. 希尔排序的基本思想是先把数 ...

  4. 数据算法之选择排序(selectSort)的Java实现

    本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. 选择排序的基本思想是在待排 ...

  5. 折半插入排序算法详解之C语言版

    一.算法原理 折半插入排序是插入排序方法中一种,相比较与直接插入排序算法,减少了排序过程中比较次数,也是一种常用的排序算法. 折半插入排序算法基本原理是将折半查找方法与直接插入排序方法相结合,也就是在 ...

  6. 我的Java开发学习之旅------Java经典排序算法之二分插入排序

    一.折半插入排序(二分插入排序) 将直接插入排序中寻找A[i]的插入位置的方法改为采用折半比较,即可得到折半插入排序算法.在处理A[i]时,A[0]--A[i-1]已经按关键码值排好序.所谓折半比较, ...

  7. 数据结构之插入排序:折半插入排序算法

    排序算法:折半插入排序算法 思维导图: 折半插入排序算法的定义: 折半插入排序算法的原理: 折半插入排序算法的代码实现: 折半插入排序算法的性能: 思维导图: 折半插入排序算法的定义: 插入排序时查找 ...

  8. 二分查找和折半插入排序一块说说-很合适~~~

    前言 上一篇在聊时间复杂度和空间复杂度时,没有按指定格式显示(明明预览的时候没问题的),强迫症的我稍微优化了一下重新发布,目的就是让小伙伴看着舒服. 上次聊到的直接插入排序在比较有序数据和待插入数据时 ...

  9. 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...

    先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...

最新文章

  1. 《Python数据科学指南》——1.17 使用映射函数
  2. Android 系统启动(一)---fork机制
  3. c++中的输入输出方法
  4. Hypertext Transfer Protocol -- HTTP/1.1
  5. ie下滚动条样式设置
  6. IPSEC---动态MAP-VS-静态MAP
  7. IE11降级为IE8的方法
  8. 系统集成项目管理工程师(软考中级)—— 第七章 知识产权 笔记分享
  9. mysql嵌套分组查询,嵌套分组MySQL查询
  10. 【VUE】微商城(十)----收货地址
  11. 每日一词——@FUnctionalInterface
  12. hdu.6441 Find Integer
  13. 电脑连不上5GWiFi解决办法:更新驱动
  14. 点击遮罩层的背景关闭遮罩层(HTML)
  15. Forming a Magic Square
  16. USF MSDS501 计算数据科学中文讲义 2.3 计算模型
  17. ps再制命令介绍以及案例展示再制命令的操作步骤
  18. (java)IO流对象(六)集合Properties类、序列化流、反序列化流、打印流
  19. 两个excel合并成一个excel
  20. 关于命令行上执行java命令的错误分析 - Could not find or load main class

热门文章

  1. “Python小屋”编程比赛参赛与领奖方式
  2. Java json拼接字符串_Java中拼接json格式字符串
  3. 生产者消费者代码_生产者消费者模型:Kotlin 多线程读写文件实例
  4. python 朋友圈自动回复评论_Python自动回复微信好友新年祝福
  5. 718. 最长重复子数组(JavaScript)
  6. mybatis 中case_解决mybatis case when 报错的问题
  7. php的select case语句,调用不同SELECT语句的MySQL IF / CASE语法
  8. activeti user guide 中文_【澳洲大岩石】最好季节发团!省掉800澳币!无比震撼特价 再次应约出发 震撼之旅!一生难忘!全程中文导游!省心放心澳洲青年旅行社...
  9. 八段锦八个动作名称_八段锦工间操“动”起来 全民健身精气神“燃”起来
  10. mongodb spring 超时时间_mongoDB(spring 部分配置)