【图解算法】排序算法——插入排序
来源:互联网 发布:php截断上传 编辑:程序博客网 时间:2024/06/05 09:27
插入排序(insertion sorting)
大体含义是这样的,想我们在打扑克牌理牌时的思路一样,来一张扑克牌做一次插入操作。
下面我们给出普通版和优化版的插入排序
public int [] insertionSort(int [] arr){ for (int i = 1; i<arr.length;i++){ for (int j = i; j>0 && arr[j] < arr[j-1];j--){ int temp = arr[j];//循环比较两个相邻的值,满足排序条件做交换,不满足跳出当前这层循环 arr[j] = arr[j-1]; arr[j-1] = temp; } } return arr; } public int [] insertionSortPlus(int [] arr){ for (int i = 1; i<arr.length;i++){ int x = arr[i]; //记录当前抽的数 int j; //记录数的位置 for (j = i; j>0 && arr[j-1] >x;j--){ arr[j] = arr[j-1];//挪位置 } arr[j] = x; //最后处理当前抽的数的位置归宿 需要注意的是这里的 j 是上面 for 循环退出时的值 } return arr; }
优化版的算法主要在于交换的次数上的优化,在数组本身的顺序较为良好的情况下,这种插入排序的优势可以体现出来,因为不用向冒泡或是选择排序那样必须走完内层循环,找到一个合适的时机可以提前跳出内层循环。
阅读全文
2 0
- 【图解算法】排序算法——插入排序
- 直接插入排序算法图解
- 排序—插入排序算法
- 排序算法—插入排序
- 八大排序算法图解一----插入排序
- 数据结构&算法实践—【排序|插入排序】插入排序
- 排序算法—插入排序之直接插入排序
- 算法——插入排序
- 算法——插入排序
- 【算法】——插入排序
- 算法——插入排序
- 算法——插入排序
- 【算法系列】—插入排序
- 算法—直接插入排序
- 排序算法——插入排序
- 排序算法——二分插入排序
- 排序算法之一——插入排序
- 排序算法——插入排序
- KMP——转载
- 网站推广之新闻营销的那些事儿
- 在macOS开发中使用Touch Bar
- git 里如何撤销任何操作
- 连接两个已经排好序的字符串
- 【图解算法】排序算法——插入排序
- 我的卷积神经网络入门170609清晨
- Java Web环境配置
- 终端走代理
- 30多个Android 开发者工具 带你开发带你飞
- 如何检测及预防C++内存泄漏
- 移动最小二乘法
- SPOJ CIRU SPOJ VCIRCLE 圆的面积并问题
- Servlet3.0异步支持