2插入排序
来源:互联网 发布:大数据下的人力资源 编辑:程序博客网 时间:2024/06/16 07:45
/** * 从后面未排序的元素中依次选择元素插入前面排好的序列中 * * @param arr */public static void insertSort(int[] arr) { for (int i = 1; i < arr.length; i++) { for (int j = i; j > 0; j--) { if (arr[j] < arr[j - 1]) { swap(arr, j, j - 1); } else { break; } } }}
插入排序的优化:
/** * 从后面未排序的元素中依次选择元素插入前面排好的序列中 * 基本的插入排序每次比较都会交换,一次交换三次赋值,效率低 * 优化方法: * 被操作的元素依次往前比较过去,所有经过的位置原元素“后移”一位(往后赋值) * 直到找到能插入的位置插入 * * @param arr */public static void insertSort(int[] arr) { for (int i = 1; i < arr.length; i++) { // 寻找元素arr[i]合适的插入位置 int e = arr[i];//e就是要被插入操作的元素 int j;//元素应该插入的位置 for (j = i; j > 0; j--) { //能经过 if (e < arr[j - 1]) { //往后赋值 arr[j] = arr[j - 1]; } else { break; } } //一次循环完成后,找到插入的位置就是j arr[j] = e; }}
阅读全文
0 0
- 排序 : 2 插入排序
- 排序 : 2 插入排序
- 排序2-插入排序
- 插入排序--2路插入排序
- 插入排序之2路插入排序
- 插入排序(直接插入排序,折半插入排序,2路插入排序,希尔排序)
- 插入排序(直接插入排序,折半插入排序,2路插入排序,希尔排序)
- 数据结构 排序2 插入排序
- 排序算法2-插入排序
- 排序算法(2)----插入排序
- //插入排序 直接插入排序 二分插入排序 2-路插入排序 表插入排序 希尔排序
- 2路插入排序
- 2路插入排序
- 2路插入排序
- 2-路插入排序
- 2-路插入排序
- 插入排序2
- 2-路插入排序
- Minim初体验:利用幅度(amplitude)变化进行简单的音乐分析
- 任意多边形的面积计算
- Eclipse 项目清除缓存
- 逻辑回归算法之交叉熵函数理解
- 几种主要的排序方法
- 2插入排序
- Week4Day1
- hdu 1114 Piggy-Bank 完全背包
- 10-15&&10-16NOIP模拟赛总结
- 学习linux!
- 多线程MFC
- leetcode 535. Encode and Decode TinyURL
- MAC快捷键使用大全
- 我们为什么要学习PHP?PHP的应用领域有哪些?