package com.yu.datastructure.sort;
//核心思路 用一个数组保存待插入的元素
public class InsertSort {
public static int[] sort(int[] a){
int[] b =new int[a.length];
b[0] = a[0];
//设置待插入数组实际数据的长度
int size = 1;
for(int i=1; i<a.length;i++){
insert(b,size,a[i]);
size ++;
}
return b;
}
private static void insert(int[] b,int size,int data){
//末端数据比待插入数据小 直接插入
if(b[size-1] < data){
b[size] = data;
return;
}
//找到比待插入数据 大的位置,向右移动数组
for(int i =0;i<size;i++){
if(b[i]>data){
for(int j = size;j>i;j--){
b[j] = b[j-1];
}
b[i]=data;
return;
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = new int[]{3,2,4,5,2};
a = sort(a);
for(int i : a){
System.out.println(i);
}
}
}