算法--插入排序
来源:互联网 发布:淘宝网179俱乐部假酒 编辑:程序博客网 时间:2024/06/03 14:46
Java版
public class InsertionSort { public static void main(String[] args) { int[] a = { 15, 25, 77, 1, 56, 4, 7, 6 }; for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(" "); insertSort(a); for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } } public static int[] insertSort(int[] array) { if (null == array || array.length < 2) { return array; } // 遍历数组 for (int i = 1; i < array.length; i++) { // 从后到前遍历 for (int j = i; j > 0; j--) { // 找到当前数的位置 if (array[j] < array[j - 1]) { int temp = array[j]; array[j] = array[j - 1]; array[j - 1] = temp; } } } return array; }}
二分插入排序
public static int[] insertSort2(int[] array) { // 遍历数组 for (int i = 0; i < array.length; i++) { // 从后往前遍历 int temp = array[i];// 当前值取出来 int left = 0; // 左边界 int right = i - 1; // 右边界 int mid = 0; while (left <= right) { mid = (left + right) / 2; // 二分左区间 if (temp < array[mid]) { right = mid - 1; } // 二分右区间 else { left = mid + 1; } } // 比当前数大的向后移 for (int j = (i - 1); j >= left; j--) { array[j + 1] = array[j]; } // 将当前数插入正确位置 if (left != i) { array[left] = temp; } } return array; }
0 0
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法---插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法---插入排序
- 排序算法--插入排序
- 排序算法--插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 梭哈控牌方法▅ω【在线演示QQ:194714506】
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- 梭哈控牌手法♂∏【在线演示QQ:194714506】
- 【Caffe源码解析】DataLayer
- MiniTwitterSimulate
- 算法--插入排序
- 梭哈怎么控牌☉▇【在线演示QQ:194714506】
- HDU 2007 平方和立方和
- Hibernate集合映射
- myeclipse连接mysql遇到的小问题
- sdut 1252 进制转换
- 数字图像处理领域的二十四个典型算法及vc实现
- 梭哈怎样控牌※▄【在线演示QQ:194714506】
- 客户端开发流程