插入排序——Insertion Sort
2017-11-02 22:36
405 查看
基本思想:
在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。过程:
平均时间复杂度:O(n2)
java代码实现:
/** * 插入排序 * * @author Administrator * */ public class InsertSort { /* * 基本思想: * 在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 * * 平均时间复杂度:O(n2) */ public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = new int[] { 2, 3, 2, 5, 6, 1, -2, 3, 14, 12, 3, 8, 55, 44, -10 }; insertSort(arr); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } private static void insertSort(int[] a) { for (int i = 0; i < a.length - 1; i++) { for (int j = i + 1; j > 0; j--) { if (a[j] < a[j - 1]) { int temp = a[j]; a[j] = a[j - 1]; a[j - 1] = temp; } else { break; } } } } }
相关文章推荐
- 经典算法(8)- 插入排序(Insertion Sort) 及三个基本排序算法的比较
- 经典排序算法 – 插入排序Insertion sort
- 插入排序(Insertion-sort)
- Insertion_Sort(插入排序)
- 排序算法(一)—插入排序(Insertion sort)
- Insertion Sort List(单链表插入排序)
- InsertionSort(插入排序)
- LeetCode:Insertion Sort List//链表插入排序
- PAT 1098. Insertion or Heap Sort (25) 堆排序和插入排序
- 结合归并排序和插入排序 Merge with Insertion Sort
- 插入排序(insertion_sort)详解
- leetcode_147题——Insertion Sort List(线性表,插入排序)
- 插入排序 Insertion sort
- 经典排序算法 – 插入排序Insertion sort
- 插入排序 (Insertion Sort)
- LeetCode Insertion Sort List(单链表插入排序)
- Insertion Sort List——链表的插入排序
- 173. 链表插入排序 (insertion-sort-list)(c++)----lintcode面试题之链表
- [LeetCode147]Insertion Sort List(链表插入排序)
- 【DS】排序算法之插入排序(Insertion Sort)