java排序算法之直接插入排序

package com.sor;

public class TestInsertSort {
	
	
	public static void insertSort2(Comparable []data){
		for (int i = 1; i < data.length; i++) {
			Comparable key=data[i];
			int index=i;
			while (index>0&&data[index-1].compareTo(key)>0) {
				data[index]=data[index-1];
				index--;
			}
			data[index]=key;
		}
		
	}

	    
	   public static void main(String []args){ 
	     
	    Comparable[]c={4,9,23,1,45,27,5,2}; 
	    insertSort2(c); 
	    for(int i=0;i<c.length;i++) 
	        System.out.println("插入排序:"+c[i]); 
	   } 


}

算法思路:

1、从第二位开始

2、保存当前需要插入的值

3、比较的时候,循环向右移动有序序列,直到合适位置进行插入

 

性能分析:

1、空间复杂度

     仅需要一个记录的存储空间

2、时间复杂度o(n2)

    最少:n-1

    
   

你可能感兴趣的:(java,算法,String,存储,Class,n2)