插入排序算法的主要思想:每次从未排序序列中取出一个数据,插入到己排序序列中的正确位置。Insert类的成员函数sort()实现了插入排序算法,请填空。 class Insert{ public: Insert(int *b0,in

admin2010-06-06  68

问题 插入排序算法的主要思想:每次从未排序序列中取出一个数据,插入到己排序序列中的正确位置。Insert类的成员函数sort()实现了插入排序算法,请填空。
   class Insert{
   public:
       Insert(int *b0,int n0):b(b0),n(n0){};//参数b0是某数组首地址,n是数组元素个数
   void sort()
   {//此函数假设已排序序列初始化状态只包含b[0],未排序序列初始为b[1]...b[n-1]
       for(int i=1;i<n;++i)
   {
   int t=b;
   int j;
   for(______;j>0;--j)
   {
   if(t>=b[j-1])
      break;
   b[j]=b[j-1];
   b[j]=t;
   }
   }
  }

选项

答案j=i

解析 在函数sort()中,在外层for循环中,依次将数组b中的值赋值给变量t,然后在内层循环中,依次与已经排序的数组元素进行比较,并在符合条件的位置插入该元素。“int t=b;”语句可知数组中有i个元素已经排好了序。因此,根据内层循环中的j>0;--j语句,知道内层循环是将当前的第i个元素与j个元素进行比较,前面已知数组中有i个元素已经排好了序,根据题干中的要求“插入到已排序序列中”,即j=i。
转载请注明原文地址:https://jikaoti.com/ti/yUW0FFFM
0

最新回复(0)