论述题 1.  排序都有哪几种方法?用Java语言实现一个插入排序。
【正确答案】常见的排序方法有选择排序、插入排序、冒泡排序、归并排序、快速排序、希尔排序和堆排序等。
   下面重点介绍插入排序。对于给定的一组记录,初始时假设第一个记录自成一个有序序列,其余的记录为无序序列。接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一个记录插入到有序序列中为止。以数组{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
【答案解析】