插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到己排序序列中的正确位置。InsertSort类的成员函数sort()实现了插入排序算法。请将画线处缺失的部分补充完整。 class InsertSort{ public: I

admin2009-03-16  71

问题 插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到己排序序列中的正确位置。InsertSort类的成员函数sort()实现了插入排序算法。请将画线处缺失的部分补充完整。
   class InsertSort{
   public:
   InsertSort(int* a0,int n0):a(a0),n(n0){}//参数a0是某数组首地址,n是数组元素个数
   void sort()
   {//此函数假设已排序序列初始化状态只包含a[0],未排序序列初始为a[1]…a[n-1]
     for(int i=1;i<n;++i){
        int t=a
     int j;
     for(【  】;j>0;--j){
         if(t>=a[j-1])break;
       a[j]=a[j-1];}
          a[j]==t;}}
   protected:
   int*a,n;//指针a用于存放数组首地址,n用于存放数组元素个数
    };

选项

答案j=i

解析 本题考查的是插入排序算法。在sort()函数中是一个两重循环,外循环从1循环递增到n-1,即遍历未排序序列a[1]…a[n-1],取未排序序列中的第1个元素a (i初值等于1)与已排序序列中的最后一个元素a[i-1]开始从后往前进行比较。内循环从后往前遍历已排序序列,使循环变量j的初值为i,则a[j-1]是已排序序列的最后一个元素。所以应该填j=i
转载请注明原文地址:https://kaotiyun.com/show/7sjp777K
0

随机试题
最新回复(0)