插入排序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);
}
}

浙公网安备 33010602011771号