package com.liuxt.sort.impl;
import com.liuxt.sort.Sort;
public class InsertImpl implements Sort {
/** * 将data中的每一个元素插入到前面已经排好序的数组中。 * * @param data */ public void sortData(int[] data) { //对顺序表的记录data[1..n]按递增序进行插入排序 int i,j=0,r; int n=data.length; for(i=1;i<n;i++){ if(data[i]<data[i-1]){ r=data[i]; //记录当前i的值,i从第二值开始 j=i-1;//i值前面已经排好序的数组的最后一个索引 do{ data[j+1]=data[j]; //data[j]向后移动 j--; }while(j>=0 && r<data[j]); data[j+1]=r; //将r的值放在j+1的索引处。因为此时r>=data[j] }//end if } }
}
相关资源:敏捷开发V1.0.pptx