直接插入——InsertSort


package sort.com;
import java.util.*;
public class InsertSort {
/**
* 程序入口方法
*
*/
public static void main(String[] args) {
//Arrays.sort(a);数组自动排序

    //用数组机制来保存将要进行排序的数组
    int []a={1,-7,2,9,5,18,12,-23,0};
    //对于N个元素进行直接插入排序,需要进行N-1次插入
    for(int i=1;i<a.length;i++){
        //将待排序的数据进行存储
        int temp=a[i];
        int j=i-1;    //j=i-1的意思是用j来作为已经有顺序的数据元素中的最后一个数字的索引
        //开始判断是否要进行移位操作
        if(temp<a[j]){
            for( ; j >= 0 && temp<a[j] ; j-- ){
                //整体向后位移一位
                a[j+1]=a[j];
            }
        }
        //进行数据插入
         a[j+1]=temp;
         for(int v:a){System.out.print(v+",");}
        System.out.println("\n");
    }   
    //遍历数组元素
    for(int s:a){System.out.print(s+",");}
            /*System.out.println("\n");
            for (int i=0;i<=6;i++){System.out.print(a[i]+",");}
            System.out.println("\n");
            System.out.println(Arrays.toString(a));//调用方法输出数组*/
}

}


猜你喜欢

转载自blog.csdn.net/MisterMister/article/details/53815022