若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为()A、1B、i-1C、iD、i+l
若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为()
- A、1
- B、i-1
- C、i
- D、i+l
相关考题:
● 对具有n个元素的顺序表(采用顺序存储的线性表)进行 (40) 操作,其耗时与n的大小无关。(40)A.在第i(1≤i≤n)个元素之后插入一个新元素B.删除第i(1≤i≤n)个元素C.对顺序表中的元素进行排序D.访问第i(1≤i≤n)个元素的前驱和后继
对n个关键码构成的序列采用直接插入排序法进行升序排序的过程是:在插入第i个关键码Ki时,其前面的i-1个关键码己排好序,因此令Ki与Ki-1、Ki-2、...,依次比较,多到K1为止,找到插入位置并移动相关元素后将Ki插入有序子序列的适当位置,完成本趟(即第i-1趟)排序。以下关于直接插入排序的叙述中,正确的是()。A.若原关键码序列已经升序排序,则排序过程中关键码间的比较次数最少B.若原关键码序列已经降序排序,则排序过程中关键码间的比较次数最少C.第1趟完成后即可确定整个序列的最小关键码D.第1趟完成后即可确定整个序列的最大关键码
对具有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