单选题若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为()A1Bi-1CiDi+l
单选题
若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为()
A
1
B
i-1
C
i
D
i+l
参考解析
解析:
在直接排序的操作中,当i=l时,排序实际上是一个空操作。所以,操作的过程从i=2开始,当进行第i趟操作时,有序表中已经有i个元素了。
相关考题:
● 对具有n个元素的顺序表(采用顺序存储的线性表)进行 (40) 操作,其耗时与n的大小无关。(40)A.在第i(1≤i≤n)个元素之后插入一个新元素B.删除第i(1≤i≤n)个元素C.对顺序表中的元素进行排序D.访问第i(1≤i≤n)个元素的前驱和后继
在下列对单链表进行的操作中,算法时间复杂度为O(n)的是()。 A、访问第i个元素的前驱(1B、在第i个元素之后插入一个新元素(1≤i≤n)C、删除第i个元素(1≤i≤n)D、对表中元素进行排序
对具有n个元素的顺序表(采用顺序存储的线性表)进行( ) 操作,其耗时与n的大小无关。A.在第i(1≤i≤n)个元素之后插入一个新元素B.删除第i(1≤i≤n)个元素C.对顺序表中的元素进行排序D.访问第i(1≤i≤n)个元素的前驱和后继
第二题 阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】对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;}
单选题若对n个元素进行直接插入排序,在进行第i趟排序时,假定元素r[i+1]的插入位置为r[j],则需要移动元素的次数为()。Aj-iBi-j-1Ci-jDi-j+1