import java.util.Arrays;
/**
*
* @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个数也是排好顺序的。
* 如此反复循环,直到全部排好顺序。
*
*/
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;
}
}
}
}
}
插入排序--InsertionSort-java实现
最新推荐文章于 2023-05-22 21:57:17 发布