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
}
}
}
507

被折叠的 条评论
为什么被折叠?



