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]); } } }