【正确答案】常见的排序方法有选择排序、插入排序、冒泡排序、归并排序、快速排序、希尔排序和堆排序等。
下面重点介绍插入排序。对于给定的一组记录,初始时假设第一个记录自成一个有序序列,其余的记录为无序序列。接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一个记录插入到有序序列中为止。以数组{38,65,97,76,13,27,49}为例,直接插入排序具体步骤如下:
第一步插入38以后,序列为[38] 65 97 76 13 27 49。
第二步插入65以后,序列为[38 65] 97 76 13 27 49。
第三步插入97以后,序列为[38 65 97] 76 13 27 49,,
第四步插入76以后,序列为[38 65 76 97] 13 2749。
第五步插入13以后,序列为[13 38 65 76 97] 27 49。
第六步插入27以后,序列为[13 27 38 65 76 97] 49。
第七步插入49以后,序列为[13 27 38 49 65 76 97]。
程序示例如下:
public class TestSort {
public static void insetxSort(int[]a){
if(a==null || a.length==0)
return;
for(int i=1;i<a.length;i++)
{
//把a[i]插入到a[0~i-1.的有序子列表中
int temp=a[i],j=i;
if(a[j-1]>temp){
while(j>=1&&a[j-1]>temp) {
a[j]=a[j-1];
j--;
}
}
a[j]=temp;
}
}
public static void main(String[]args){
int[]array={7,3,19,40,4,7,1};
insertSort(array);
for(int i=0;i<array.length;i++)
System.out.print(array[i]+" ");
}
}
程序的运行结果为:
1 3 4 7 7 19 40
【答案解析】