java 实现插入排序

sorted数组第0个位置没有放数据

从sorted数组的第二个数据开始处理

 

 

 

package com.learn;

public class InsertionSort {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        double [] sort=new double[]{0.0,9.8,2.3,4.5,6.7,1.2,7.5,2.3};
        
        InsertionSort is=new InsertionSort(sort);
    }

    
    public InsertionSort(double [] sorted){
        
        int sortedLength=sorted.length;
        for (int i=2;i<sortedLength;i++){
            
            
            if(sorted[i]<sorted[i-1]){
                
                sorted[0]=sorted[i];
                sorted[i]=sorted[i-1];
                
                int insertpos=0;
                
                for(int k=i-2;k>=0;k--){
                    if(sorted[k]>sorted[0]){
                        
                        sorted[k+1]=sorted[k];
                        
                        
                    }
                    else{
                        
                        
                        insertpos=k+1;
                        break;
                    }
                    
                    
                }
                
                sorted[insertpos]=sorted[0];
                
            }
            
            
            
        }
        
        for (int k=1;k<sortedLength;k++){
            
            
            
            System.out.println(sorted[k]);
        }
        
        
    }
    
    
}

 

posted on 2016-10-20 12:33  猫儿爹  阅读(150)  评论(0编辑  收藏  举报

导航