更多“若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为______。A.1B.11C.iD.i ”相关问题
  • 第1题:

    若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为 ______。

    A.1

    B.i-1

    C.i

    D.i+1


    正确答案:C

  • 第2题:

    对具有n个元素的顺序表(采用顺序存储的线性表)进行( ) 操作,其耗时与n的大小无关。

    A.在第i(1≤i≤n)个元素之后插入一个新元素

    B.删除第i(1≤i≤n)个元素

    C.对顺序表中的元素进行排序

    D.访问第i(1≤i≤n)个元素的前驱和后继


    正确答案:D
    解析:线性表是随机读取的,所以参看某个元素与n无关。【总结与扩展】顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。将表中元素一个接一个地存入一组连续的存储单元中,这种存储结构是顺序结构。采用顺序存储结构的线性表简称为“顺序表”。顺序表的存储特点是:只要确定了起始位置,表中任一元素的地址都通过下列公式得到:L0c(ai)=LOC(ai)+(i-1)*L(1≤i≤n),其中,L是元素占用存储单元的长度。

  • 第3题:

    第二题 阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
    【说明】
    对n个元素进行简单选择排序的基本方法是:第一趟从第1个元素开始,在n个元素中选出最小者,将其交换至第一个位置,第二趟从第2个元素开始,在剩下的n-1个元素中选出最小者,将其交换至第二个位置,依此类推,第i趟从n-i+1个元素中选出最小元素,将其交换至第i个位置,通过n-1趟选择最终得到非递减排序的有序序列。 问题:2.1 【代码】
    #include
    void selectSort(int data[ ],int n)
    //对 data[0]~data[n-1]中的n个整数按非递减有序的方式进行排列
    {
    int i,j,k;
    int temp;
    for(i=0;i for(k=i,j=i+1;(1);(2)) //k表示data[i]~data[n-1]中最小元素的下标
    if(data[j] if(k!=i) {
    //将本趟找出的最小元素与data[i]交换
    temp=data[i]; (4) ;data[k]=temp;
    }
    }
    }

    int main()
    {
    int arr[ ]={79,85,93,65,44,70,100,57};
    int i,m;
    m=sizeof(arr)/sizeof(int); //计算数组元素的个数,用m表示
    (5); //调用selectSort对数组arr进行非递减排序
    for((6);i printf(“%d\t”,arr[i]);
    printf(“\n”);
    return 0;
    }


    答案:
    解析:
    j(2)j++
    (3)k=j
    (4)data[i]=data[k]
    (5)selectSort(arr,m)此处m也可以填8或者sizeof(arr)/sizeof(int), arr可以改成&arr[0]
    (6)i=0

    【解析】

    本题考查 C 程序设计基本技能及应用。简单选择排序方法是设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟后就完成了记录序列的排序。
    第1空应填j循环结束条件,j应该运行至序列末尾。填j第2空填j循环控制语句,j每次递增1,往后移动一个元素与a[i]进行比较。
    第3空为自动保存最大元素的下标,k=j。
    第4空为交换两个元素,temp为临时变量,保存data[i]的值,使用data[i]=data[k]使data[i]为后面n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,再将temp赋给data[k]。
    第5空为调用selectSort对数组arr进行非递减排序,selectSort有两个参数,数组和排序元素个数,为selectSort(arr,m)。
    第6空进行元素遍历输出所有的数组元素,从下标为0开始,所以填i=0。

  • 第4题:

    在对n个元素进行直接插入排序的过程中,共需要进行()趟。

    • A、n
    • B、n+1
    • C、n-1
    • D、2n

    正确答案:C

  • 第5题:

    若对n个元素进行直接插入排序,在进行第i趟排序时,假定元素r[i+1]的插入位置为r[j],则需要移动元素的次数为()。

    • A、 j-i
    • B、 i-j-1
    • C、 i-j
    • D、 i-j+1

    正确答案:D

  • 第6题:

    设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中()个数据元素;删除第i个位置上的数据元素需要移动表中()个元素。


    正确答案:n-i+1;n-i

  • 第7题:

    设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),则移动元素个数为()。

    • A、n-i+1
    • B、n-i
    • C、n-i-1
    • D、i

    正确答案:A

  • 第8题:

    单选题
    对具有n个元素的任意序列采用插入排序法进行排序,排序趟数为()。
    A

    n-1

    B

    [log2n]

    C

    n

    D

    n+1


    正确答案: A
    解析: 暂无解析

  • 第9题:

    单选题
    若对n个元素进行直接插入排序,则进行任一趟排序的过程中,为寻找插入位置而需要的时间复杂度为()
    A

    O(1)

    B

    O(n)

    C

    O(n2

    D

    O(log2n)


    正确答案: B
    解析: 暂无解析

  • 第10题:

    单选题
    若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为()
    A

    1

    B

    i-1

    C

    i

    D

    i+l


    正确答案: C
    解析: 在直接排序的操作中,当i=l时,排序实际上是一个空操作。所以,操作的过程从i=2开始,当进行第i趟操作时,有序表中已经有i个元素了。

  • 第11题:

    单选题
    若对n个元素进行直接插入排序,在进行第i趟排序时,假定元素r[i+1]的插入位置为r[j],则需要移动的元素的次数为()
    A

     j-i

    B

     i-1

    C

     i-j-1

    D

     i-j+1


    正确答案: C
    解析: 当第r[i+1]元素插入位置r[j]时,两者之间位置相差的个数为i+1-j。所以,在位置j后面的每个元素就都要向后移动一位,次数为i-j+1。

  • 第12题:

    单选题
    若对n个元素进行直接插入排序,在进行第i趟排序时,假定元素r[i+1]的插入位置为r[j],则需要移动元素的次数为()。
    A

    j-i

    B

    i-j-1

    C

    i-j

    D

    i-j+1


    正确答案: A
    解析: 暂无解析

  • 第13题:

    对于具有n个元素的一个数据序列,若只需得到其中第k个元素之前的部分排序,最好采用(63)。

    A.堆排序

    B.希尔排序

    C.快速排序

    D.直接插入排序


    正确答案:A
    解析:对于具有n个元素的一个数据序列,对于只需得到最终序列的前k个元素,堆排序比较简单。对于希尔排序、直接插入排序,只有在排序过程后才能确保全部序列及前k个元素的最终排列。快速排序采用分治算法,常用递归算法实现,该算法根据枢轴元素进行划分,第一趟划分结束后得到了两个子序列,一个序列中的元素均不大于另一个子序列中的元素,枢轴元素介于这两个子序列之间。若仅需得到最终序列的前k个元素,每次得到枢轴元素位置后再考虑下一步的排序过程,在算法的流程控制上比较复杂。

  • 第14题:

    在对n个关键字进行直接选择排序的过程中,每一趟都要从无序区选出最小关键字元素,则在进行第i趟排序之前,无序区中关键字元素的个数为 ( )

    A.i

    B.i+1

    C.n-i

    D.n-i+1


    正确答案:D

  • 第15题:

    对具有n个元素的任意序列采用插入排序法进行排序,排序趟数为()。

    An-1

    B[log2n]

    Cn

    Dn+1


    A

  • 第16题:

    若对n个元素进行直接插入排序,在进行第i趟排序时,假定元素r[i+1]的插入位置为r[j],则需要移动的元素的次数为()

    • A、 j-i
    • B、 i-1
    • C、 i-j-1
    • D、 i-j+1

    正确答案:D

  • 第17题:

    若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为()

    • A、1
    • B、i-1
    • C、i
    • D、i+l

    正确答案:C

  • 第18题:

    对具有n个元素的任意序列采用插入排序法进行排序,排序趟数为()。

    • A、n-1
    • B、[log2n]
    • C、n
    • D、n+1

    正确答案:A

  • 第19题:

    若对n个元素进行直接插入排序,则进行第i趟排序时,为寻找插入位置最多需要进行()次元素的比较,假定第0号元素放有待查的关键字。

    • A、1
    • B、i-1
    • C、i+1

    正确答案:C

  • 第20题:

    单选题
    若对n个元素进行直接插入排序,在进行任意一趟排序的过程中,为寻找插入位置而需要的时间复杂度为()
    A

    O(1)

    B

    O(n2

    C

    O(log2n)

    D

    O(n)


    正确答案: D
    解析: 暂无解析

  • 第21题:

    单选题
    若对n个元素进行直接插入排序,在进行第i趟排序时,假定元素r[i+1]的插入位置为r[j],则需要移动元素的次数为()。
    A

     j-i

    B

     i-j-1

    C

     i-j

    D

     i-j+1


    正确答案: C
    解析: 暂无解析

  • 第22题:

    单选题
    若对n个元素进行直接插入排序,则进行第i趟排序时,为寻找插入位置最多需要进行()次元素的比较,假定第0号元素放有待查的关键字。
    A

    1

    B

    i-1

    C

    i+1


    正确答案: C
    解析: 暂无解析

  • 第23题:

    单选题
    在对n个元素进行直接插入排序的过程中,共需要进行()趟。
    A

    n

    B

    n+1

    C

    n-1

    D

    2n


    正确答案: D
    解析: 暂无解析