插入排序

十年热恋 提交于 2019-11-28 18:20:48

思想: 将数组分为两部分,一部分有序,一部分无序。每次从无序中拿一个数,在有序数组找一个坑,把这个无序的数放入坑中。(这样会有一个,你占啦别人的坑,别人

怎么办呢?那么就要将插入坑中的地方的后面的数据都往后面移动,这样就不会出现问题)。其实每次拿出的无序的数有两个插入位置,要么是本身的位置,要么是

有序数的那部分中的某个位置

public class sort_insert {

public static void main(String[] args) {

    int a[]={1,7,3,9,0,4,5,6};
	
    int b[]=a;
	
    for(int i=0;i<a.length;i++)
	
        System.out.print(a[i]+" ");
		
    System.out.println();
	
      insert_sort(a);
	  
    for(int i=0;i<a.length;i++)
	
        System.out.print(a[i]+" ");
		
    System.out.println();
}

public static  void insert_sort(int a[]){
    int temp;

    int j;
	
    for(int i=1;i<a.length;i++){
	
        j=i;
		
        temp=a[i];
		
        //两种循环实现

// int k=i;

// for( k=i-1;k>0&&temp<a[k];k--){

// a[k+1]=a[k];

// } // a[k]=temp;

        while (j>0&&a[j-1]>temp){
		
            a[j]=a[j-1];
			
            j--;
        }

       a[j]=temp;
    }
}

}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!