理解:就是把剩下无序的元素,插入到已经排好的序的队列中的合适的位置;用两个循环,外循环从第二个元素开始计算,内循环就是把剩下的元素插入到前面合适位置;
算法实现:
package lianxi;
public class InserSort {
public static void sort(double[] a){
int i, j;
for(i=1; i<a.length; i++) {
/**
* 标记当前元素的位置
*/
int flag=i;
for(j=i-1; j>=0; j--) {
if(a[flag]<a[j])
{
double temp=a[flag];
a[flag]=a[j];
a[j]=temp;
/**
* 记录当前元素的位置
*/
flag=j;
}
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
double[] a= {10.0, 2.0, 67.0, 88.0, 1.0};
sort(a);
for(double i:a) {
System.out.println(i);
}
}
}