基础算法(三)---插入排序(Java)
2017-05-01 14:43
211 查看
插入排序的具体步骤如下:
从第一个元素开始,该元素可以认为已经被排序
取出下一个元素,在已经排序的元素中从后向前扫描
如果该元素(已排序)大于新元素,则将该元素移到下一位置
重复步骤3,知道找到已排序的元素小于或者等于新元素的位置
将新元素放到该位置中
重复步骤2
从第一个元素开始,该元素可以认为已经被排序
取出下一个元素,在已经排序的元素中从后向前扫描
如果该元素(已排序)大于新元素,则将该元素移到下一位置
重复步骤3,知道找到已排序的元素小于或者等于新元素的位置
将新元素放到该位置中
重复步骤2
public class InserttionSort{ pulic static <T extends Comparable<? super T>> void insertionSort(T[] a){ int j; for (int p = 1; p < a.length; p++) { T tmp = a[p]; for (int j = p; j > 0 && tmp.compareTo(a[j-1])<0 ; j--) { a[j] = a[j-1]; } a[j]=tmp; } } }
package SortAlgorithm; /** * Created by Promacanthus on 2017/6/12. */ public class InsertSort { int[] ints; InsertSort(int[] ints) { this.ints = ints; } public void insertsort(int[] ints) { for (int i = 0; i < ints.length; i++) { for (int j = i; (j > 0) && (ints[j] < ints[j - 1]); j--) { swap(ints, j, j - 1); } } } private void swap(int[] ints, int j, int i) { int temp = ints[j]; ints[j] = ints[i]; ints[i] = temp; } public static void main(String[] args){ int[] a = {4, 2, 1, 6, 3, 6, 0, -5, 1, 1}; InsertSort insertSort = new InsertSort(a); insertSort.insertsort(a); for (int i = 0; i < a.length; i++) { System.out.println(a[i]); } } }
相关文章推荐
- java 算法基础之六插入排序与冒泡排序
- java基础算法之插入排序
- 算法导论(一)2、算法基础-插入排序 java
- 中国年历算法和程式-Java基础-Java-编程开发
- 插入排序 Java数据结构与算法
- java 算法基础之七希尔排序
- 一步一步复习数据结构和算法基础-插入排序(2)
- java 算法基础之三合并排序法
- 排序基础算法汇总-java实现
- java基础2.(算法的8个实例)
- java基础之插入排序
- java 算法基础之五快速排序法
- java基础算法
- Java基础之两个小算法
- java基础知识之 算法 九九乘法表
- 一步一步复习数据结构和算法基础-插入排序(1)
- 基础排序 - 插入排序(Java)
- java基础知识之 算法 【冒泡排序】【快速排序】
- 基础算法 —— 插入排序
- 数据结构与算法——三种基础排序算法C#实现(冒泡排序、选择排序、插入排序)