插入排序-java实现
2016-07-10 11:40
417 查看
插入排序:
通过反复的将某一个特定的值插入到已经排序好的子集中来完成对列表值的排序。排序策略:
1.对列表的头两个值进行排序;2.将第三个值插入到已排序子集的恰当位置;
3.将列表后续的值依次插入到排序子集的恰当位置,直到整个列表排序完成。
例子:
初始:2 8 5 1 3step1: 2 8 5 1 3 (对表头的2 和 8进行排序)
step2: 2 5 8 1 3 (插入5)
step3: 1 2 5 8 3 (插入1)
step4: 1 2 3 5 8 (插入3)
最终:1 2 3 5 8
Code:
/* *Created on 2016年7月10日 *Copyright 2016 Yong Cai Limited crop. All Rights Reserved * */ package org.cy.sort; public class InsertionSort { public static void main(String[] args) { String[] dataStr = {"cc","yy","gg","aa"}; printArr(insertionSort(dataStr)); } public static <T extends Comparable<? super T>> T[] insertionSort(T[] data){ for(int index = 1; index < data.length; index++){ T key = data[index]; int pos = index; while(pos > 0 && data[pos - 1].compareTo(key) > 0){ data[pos] = data[pos - 1]; pos--; } data[pos] = key; } return data; } public static <T> void printArr(T[] data){ int len = data.length; for(int i = 0; i < len; i++){ System.out.print(data[i] + " "); } System.out.println(); } }
相关文章推荐
- 插入排序
- php实现插入排序
- Java数据结构及算法实例:插入排序 Insertion Sort
- javascript数据结构之双链表插入排序实例详解
- c++几种基本的插入排序(图文)
- Java排序算法总结之插入排序
- JAVA算法起步之插入排序实例
- 详解直接插入排序算法与相关的Java版代码实现
- java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)
- python插入排序算法的实现代码
- Python中使用插入排序算法的简单分析与代码示例
- js算法: inserting sort 插入排序
- Python中使用插入排序算法的简单分析与代码示例
- 插入排序
- 数据结构与算法学习-简单排序算法之插入排序
- 插入排序
- 插入排序
- 排序算法 java版本
- 插入排序
- 排序