基本思想:
每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置,将该元素插入到有序数列的合适位置中。
插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外,而第二部分就只包含这一个元素。在第一部分排序后,再把这个最后元素插入到此刻已是有序的第一部分里的位置。
/**
* 插入式排序, 将后组每个元素取出与前组逐一比较,找到位置插入
* @param ary
*/
public static void insertSort(int ary[]){
for(int i=1;i<ary.length;i++){
int t=ary[i];
for(int j=i-1;j>=0 && ary[j]>t;j--){
ary[j+1]=ary[j];
}
ary[j+1]=t;
}
}
2586

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



