【数据结构与算法】插入排序
2016-03-29 22:13
141 查看
记录一下插入排序。
public class InsertionSort { public static void sort(Integer[] array) { if (array == null || array.length == 0) { return; } Integer value = null; Integer tempIndex = null; for (int i = 1; i < array.length; i++) { value = array[i]; tempIndex = i - 1; while (tempIndex >= 0) { if (value < array[tempIndex]) { /* 遍历有序序列,遇到比要插入的元素大的元素,则后移一位 */ array[tempIndex + 1] = array[tempIndex]; tempIndex--; } else { /* 遍历有序序列,遇到比要插入的元素小的元素,可以停止了 */ break; } } array[tempIndex + 1] = value; } } }
import org.junit.Test; public class HowToTest { @Test public void c1() { Integer[] array = {3,16,1,5,2,18,0,9,20,11}; InsertionSort.sort(array); for (int i = 0; i < array.length; i++) { System.out.print(array[i] + ", "); } System.out.println(); } @Test public void c2() { Integer[] array = {99,98,97,96,95,94,93,92,91,101,90,89,88,87,86,85}; InsertionSort.sort(array); for (int i = 0; i < array.length; i++) { System.out.print(array[i] + ", "); } System.out.println(); } }
相关文章推荐
- 【数据结构和算法】选择排序
- 【数据结构与算法】冒泡排序
- 数据结构(java语言描述)——串数组(n阶魔方)
- 大话数据结构读书笔记系列(四)栈与队列
- 重学数据结构系列之——堆及堆排序
- Java数据结构——优先级队列
- HDU 3065 AC自动机模版题
- HDU 2896 AC自动机模版题
- Java数据结构——队列
- 如何理解数据结构中的引用参数 &
- 数据结构 用单链表表示集合的并交差运算
- FFMPEG中重要的数据结构的挖掘
- FFmpeg的一些关键的数据结构(二)
- FFmpeg的一些关键的数据结构(一)
- ffmpeg主要数据结构及其之间的关系
- 数据结构(三)——双链表、链式栈、链式队列 及实现
- 数据结构(二)——单链表 、带头结点的单链表、循环链表 及其实现
- 数据结构(一)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 数据结构与算法(七):常见数据结构与算法概括
- 使用C++实现二叉搜索树的数据结构