博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分排序的代码实现
阅读量:5140 次
发布时间:2019-06-13

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

二分插入排序: 和插入排序类似,只不过通过对有序数组进行折半查找,以提高查找插入位置的效率。

public int[] sort(int[] a) {        for (int i = 0; i < a.length; i++) {            int left = 0;            int mid = 0;            int right = i -1;      //对第i个元素进行插入时,则有序数组的长度为i,最后的元素下标为i-1;            int temp = a[i];                   while (left <= right) {       //当left>right时代表位置查找结束。                if (a[i] < a[mid]) {                    right = mid - 1;                    mid = (left + right) / 2;                } else if (a[i] > a[mid]) {                    left = mid + 1;                    mid = (left + right) / 2;                } else {                    left = mid + 1;                }            }            for (int j = i - 1; j > right; j--) {   //查找到的位置到第i个数之前的数全部向后挪一位。以便插入                a[j+1] = a[j];            }            a[right+1] = temp;             //在查找到的位置处插入需要插入的元素值。        }        return a;    }

 

转载于:https://www.cnblogs.com/halo-yang/p/7307075.html

你可能感兴趣的文章
SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
查看>>
[转]vs2010编译金山代码
查看>>
数学图形之Boy surface
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
3.浏览器检测
查看>>
01: socket模块
查看>>
Border-radius
查看>>
mysql触发器
查看>>
Redis学习笔记(1)Redis安装和启动
查看>>
淌淌淌
查看>>
BZOJ1002:[FJOI2007]轮状病毒
查看>>
SSD5_Recommended Exercise 4 分析
查看>>
django实现分页功能
查看>>
CSS伪类与CSS伪元素的区别
查看>>
如何:修改字符串内容
查看>>
Tomcat Server之启动---Bootstrap类
查看>>
经典问题-生产者和消费者问题
查看>>
Hadoop Distributed File System 简介
查看>>
文档通信(跨域-不跨域)、时时通信(websocket)、离线存储(applicationCache)、开启多线程(web worker)...
查看>>
常用正则表达式
查看>>