插入排序Java算法实现

1.思路:数字与它左边数字的比较,左边大则替换,左边小则进行下一轮比较

首先定义一个小的数组打印工具类.代码如下:

package day06;
public class ArrayUtils {
public static void printArray(int[] array) {
  System.out.print("{");
  for(int i=0;i<array.length;i++){
    System.out.print(array[i]);
      if(i<array.length-1){
        System.out.print(",");
      }
    }
    System.out.print("}");
  }
}

其次:插入排序的java实现代码及测试如下:

package day06;
public class InsertSortTest {
public static void insertSort(int[]array){

//如果数组为空或者数组长度是1则返回
  if(array==null||array.length<2){
    return;
  }

//对第i-1位数字进行比较, i一次,j循环i-1次,左侧的数字小则退出比较,否则替换,array的i-1(position);继续比较,循环结束,把position赋值给i


  for(int i=1;i<array.length;i++){
    int currentValue=array[i];
    int position=i;
    for(int j=i-1;j>=0;j--){
      if(array[j]>currentValue){
        array[j+1]=array[j];
        position-=1;
      }else{
         break;
      }
    }
    array[position]=currentValue;
  }
}
public static void main(String[] args) {
int []array={1,2,5,6,5,4,3,0,9};
ArrayUtils.printArray(array);
insertSort(array);
ArrayUtils.printArray(array);
}
}

posted @ 2018-05-02 11:24  Daemondz  阅读(43)  评论(0)    收藏  举报