Java排序四:二分插入排序
2016-03-01 23:31
295 查看
public class TestDemo { public static void main(String[] args) { int[] arr = new int[10]; Random random = new Random(); for (int i = 0; i < arr.length; i++) { arr[i] = random.nextInt(100); } display(arr); sort(arr); display(arr); } public static void sort(int[] arr) { int len = arr.length; int left, right, num; for (int i = 1; i < len; i++) { left = 0; right = i - 1; num = arr[i]; while (left <= right) { int middle = (left + right) >> 0x1; if (num < arr[middle]) { right = middle - 1; } else { left = middle + 1; } } for (int j = i - 1; j >= left; j--) { arr[j + 1] = arr[j]; } arr[left] = num; } } private static void swap(int[] arr, int i, int j) { if (i == j) { return; } arr[i] = arr[i] ^ arr[j]; arr[j] = arr[i] ^ arr[j]; arr[i] = arr[i] ^ arr[j]; } private static void display(int[] arr) { for (int i = 0, len = arr.length; i < len; i++) { System.out.print(arr[i] + " "); } System.out.println(); } }
相关文章推荐
- TIC TAC TOE 消去版
- Java排序三:直接插入排序
- Java排序二:选择排序
- Java排序一:冒泡排序
- Java排序六:堆排序
- java菜鸟须知
- springMVC-错误消息的显示和国际化
- JAXP简介
- Java初学者必看2
- java中ArrayList 、LinkList区别
- Java中IO流的介绍
- 【JAVA】2、搭建开发环境
- 公平锁 非公平锁
- [Java] 实验1
- java 非阻塞通信的例子
- Class.forName()、ClassLoader.loadClass()
- Java回调学习笔记
- spring动态数据源配置以及以及利用AOP自动设置
- Struts2的Action与ServletAPI的解耦
- Java学习笔记之面向对象的几个知识点