插入排序--InsertionSort-java实现

/**
 * 
* @ClassName: InsertionSort  
* @Description: 插入排序--正序(从小到大)
* @author szren  
* @date 2018年5月30日 下午5:16:36  
*
*原理示意图
* 	初始化数组  5,3,4,8,9,1,2,7,6
* 
* 			i=0 	3,5,				4,8,9,1,2,7,6    ---前两个元素排序
* 			i=1 	3,4,5,				8,9,1,2,7,6    ---前三个元素排序
* 			i=2 	3,4,5,8,			9,1,2,7,6    ---前四个元素排序
* 			i=3 	3,4,5,8,9,			1,2,7,6    ---前五个元素排序
* 			i=4 	1,3,4,5,8,9,		2,7,6    ---前六个元素排序
* 			i=5 	1,2,3,4,5,8,9,		7,6    ---前七个元素排序
* 			i=6 	1,2,3,4,5,7,8,9,	6    ---前八个元素排序
* 			i=7 	1,2,3,4,5,6,7,8,9,    ---所有元素排序完成
*
* 	插入排序是基于比较的排序。通过比较数组中的元素大小,来调整元素的位置。
* 	对于这类排序,就有两种基本的操作:①比较操作; ②交换操作.
* 	在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。
* 	如此反复循环,直到全部排好顺序。
* 
 */
import java.util.Arrays;
public class InsertionSort {public static void main(String[] args) {int aa[] ={5,3,4,8,9,1,2,7,6};insertionSort(aa,aa.length);System.out.println("选择排序后的顺序::"+Arrays.toString(aa));}private static void insertionSort(int[] aa, int length) {for(int i=0;i<length-1;i++){for(int j=i+1;j>0;j--){if(aa[j]<aa[j-1]){int temp = aa[j-1];aa[j-1]=aa[j];aa[j]= temp;}}}}}

猜你喜欢

转载自blog.csdn.net/shumuqinghua/article/details/80519887