插入排序(Insertsort)之Java实现
来源:互联网 发布:2014最新网络红歌 编辑:程序博客网 时间:2024/06/11 05:35
插入排序算法介绍
排序算法是最简单的算法,也是最基本的算法。顾名思义,插入排序就是把当前待排序的元素插入到一个已经排好序的列表里面。 一个非常形象的例子就是右手抓取一张扑克牌,并把它插入左手拿着的排好序的扑克里面。插入排序的最坏运行时间是O(n2), 所以并不是最优的排序算法。特点是简单,不需要额外的存储空间,在元素少的时候工作得好。
插入排序算法Java实现
Java里面有很多数据类型,我们选取的是最简单的整数,但这并不失一般性。即使是自己定制化的对象,实现了java.lang.Comparable, 把对应的 大于号(>)以及小于号(<)换成compareTo即可。
由于需要频繁的操作以及打印数组,先写一个小的数组工具类。代码如下:
public class ArrayUtils {public static void printArray(int[] array) {System.out.print("{");for (int i = 0; i < array.length; i++) {System.out.print(array[i]);if (i < array.length - 1) {System.out.print(", ");}}System.out.println("}");}}
从数组的第二个元素开始,取得当前待处理的元素,插入到当前元素之前的子数组里面,直到数组的末尾。插入排序的Java实现以及测试代码如下:
public class InsertSortTest {public static void insertSort(int[] array) {if (array == null || array.length < 2) {return;}for (int i = 1; i < array.length; i++) {int currentValue = array[i];int position = i;for (int j = i - 1; j >= 0; j--) {if (array[j] > currentValue) {array[j + 1] = array[j];position -= 1;} else {break;}}array[position] = currentValue;}}public static void main(String[] args) {int[] array = { 3, -1, 0, -8, 2, 1 };ArrayUtils.printArray(array);insertSort(array);ArrayUtils.printArray(array);}}
- 插入排序(Insertsort)之Java实现
- 插入排序(Insertsort)之Java实现
- 数据算法之插入排序(insertSort)的Java实现
- java insertsort 插入排序
- 插入排序之直接插入(InsertSort)
- 内部排序之插入排序(InsertSort)
- 插入排序法(InsertSort)c++实现
- 插入排序InsertSort
- insertSort - 插入排序
- 插入排序 InsertSort
- 插入排序 InsertSort
- 插入排序(InsertSort)
- 插入排序InsertSort
- 插入排序-InsertSort
- 插入排序-insertsort
- 插入排序(InsertSort)
- 插入排序(InsertSort)
- InsertSort 插入排序算法
- SQL语句杂记3
- Android 软键盘点击Done隐藏软键盘
- 让无序数组元素进行排序,排序完后将排序后元素对应的原先元素的位置输出
- [通俗易懂] ARM与X86不具备可比性 性能差距可大上千倍
- java IO使用心得(未完待续...)
- 插入排序(Insertsort)之Java实现
- 杨辉三角
- 缓存、缓存算法和缓存框架简介
- Linux Administrator's Guid - 系统资源管理命令
- myeclipse配置hadoop开发环境
- MFC对文件文件夹转移、删除、重命名、复制
- Html.ActionLink 参数
- 组合数学第一发 hdu 2451 Simple Addition Expression
- 撒发生