排序算法-插入排序_二分法插入排序
2015-11-11 21:29
309 查看
package 插入排序; /** * 二分法插入排序(按二分法找到合适位置插入) 【稳定】 * * 基本思想:二分法插入排序的思想和直接插入一样,只是找合适的插入位置的方式不同,这里是按二分法找到合适的位置,可以减少比较的次数。 */ public class 二分法插入排序 { public static void main(String[] args) { int[] a = { 49, 38, 65, 97, 76, 13, 27}; System.out.println("排序前:"); for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } sort(a);// 二分法插入排序 System.out.println(); System.out.println("排序后:"); for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } } public static void sort(int[] a) { for (int i = 0; i < a.length; i++) { int temp = a[i]; int left = 0; int right = i - 1; int mid = 0; while (left <= right) { mid = (left + right) / 2; if (temp < a[mid]) { right = mid - 1; } else { left = mid + 1; } } for (int j = i - 1; j >= left; j--) { a[j + 1] = a[j]; } if (left != i) { a[left] = temp; } } } }
运行结果如下:
排序前: 49 38 65 97 76 13 27 排序后: 13 27 38 49 65 76 97
相关文章推荐
- JavaScript演示排序算法
- 算法之排序算法的算法思想和使用场景总结
- php 地区分类排序算法
- js三种排序算法分享
- Javascript中的常见排序算法
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述
- 排序算法的javascript实现与讲解(99js手记)
- C++中十种内部排序算法的比较分析
- Java实现几种常见排序算法代码
- 浅谈javascript实现八大排序
- PHP常用的排序和查找算法
- JavaScript中九种常用排序算法
- STl中的排序算法详细解析
- PHP四种基本排序算法示例
- 排序算法之PHP版快速排序、冒泡排序
- JavaScript排序算法之希尔排序的2个实例
- Java常用排序算法及性能测试集合
- Java中常用的6种排序算法详细分解
- Javascript排序算法之合并排序(归并排序)的2个例子
- JAVA简单选择排序算法原理及实现