采用插入排序算法对n个整数排序,其基本思想是:在插入第i个整数时,前i一1个整数已经排好序,将第i个整数依次和第i.,i-2,…个整数进行比较,找到应该插入的位置。现采用插入排序算法对6个整数{5 2,4,6,1,3}进行从小到大排序,则需要进行(31)次整数之间的比较。对于该排序算法,输入数据具有(32)特点时,对整数进行从小到大排序,所需的比较次数最多。A.9B.10C.12D.13(32)A.从小到大B.从大到小C.所有元素相同D.随机分布请帮忙给出每个问题的正确答案和分析,谢谢!

采用插入排序算法对n个整数排序,其基本思想是:在插入第i个整数时,前i一1

个整数已经排好序,将第i个整数依次和第i.,i-2,…个整数进行比较,找到应该插入

的位置。现采用插入排序算法对6个整数{5 2,4,6,1,3}进行从小到大排序,则需要进行

(31)次整数之间的比较。对于该排序算法,输入数据具有(32)特点时,对整数进

行从小到大排序,所需的比较次数最多。

A.9

B.10

C.12

D.13

(32)A.从小到大

B.从大到小

C.所有元素相同

D.随机分布

请帮忙给出每个问题的正确答案和分析,谢谢!


相关考题:

●下面算法是实现对n个整数的序列进行选择排序,其中序列的"长度"n为问题的规模。该算法的时间复杂度为 (23) 。void select_sort(int a[],int n){//将a中整数序列重新排列成从小到大有序的整数序列for(i=0;in-1;++i){j=i;for(k=i+1;kn;++k)if(a[k]a[j])j=k;if(j!=i){w=a[j];a[j]=a[i];a[i]=w;}}//select- sort(23) A.O(n3)B.O(n2)C.O(n)D.O(n4)

● 对具有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个节点的顺序表中,算法的时间复杂度是O(1)的操作是() A、访问第i个节点(1≤i≤n)B、在第i个节点后插入一个新节点(1≤i≤n)C、删除第i个节点(1≤i≤n)D、将n个节点从小到大排序

有n个节点的单链表中,算法的时间复杂度是O(1)的操作是() A、访问第i个节点(1≤i≤n)B、在第i个节点后插入一个新节点(1≤i≤n)C、访问值为x的节点D、将n个节点从小到大排序

在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。A.访问第i个结点(1 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。A.访问第i个结点(1B.在第i个结点之后插入一个新结点(1C.删除第i个结点(1D.将n个结点从小到大排序

下面算法是实现对n个整数的序列进行选择排序,其中序列的“长度”n为问题的规模。该算法的时间复杂度为(11)。 void select_sort(int a[],int n){ //将a中整数序列重新排列成从小到大有序的整数序列 for(i=0;i<n-1;++i){ j=i; for(k=i+1;k<n;++k)if(a[k]<a[j])j=k; if(j!=i){w=a[j];a[j];a[i];a[i]=w} )//select_sortA.O(n2)B.O(n3)C.O(n4)D.O(n)

对n个关键码构成的序列采用直接插入排序法进行升序排序的过程是:在插入第i个关键码Ki时,其前面的i-1个关键码己排好序,因此令Ki与Ki-1、Ki-2、...,依次比较,多到K1为止,找到插入位置并移动相关元素后将Ki插入有序子序列的适当位置,完成本趟(即第i-1趟)排序。以下关于直接插入排序的叙述中,正确的是()。A.若原关键码序列已经升序排序,则排序过程中关键码间的比较次数最少B.若原关键码序列已经降序排序,则排序过程中关键码间的比较次数最少C.第1趟完成后即可确定整个序列的最小关键码D.第1趟完成后即可确定整个序列的最大关键码

若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为 ______。A.1B.i-1C.iD.i+1

B.插入排序:思路:当前a[1]..a[i-1]已排好序了,现要插入a[i]使a[1]..a[i]有序。procedure insert_sort;var i,j:integer;

采用插入排序算法对n个整数排序,其基本思想是:在插入第i个整数时,前i-1个整数己经排好序,将第i个整数依次和第i-1, i-2, ...个整数进行比较,找到应该插入的位置。现采用插入排序算法对6个整数{5.2.4.6.1.3}进行从小到大排序,则需要进行(31)次整数之间的比较。对于该排序算法,输入数据具有(32)特点时,对整数进行从小到大排序,所需的比较次数最多。A.9B.10C.12D.13

对具有n个元素的顺序表(采用顺序存储的线性表)进行( ) 操作,其耗时与n的大小无关。A.在第i(1≤i≤n)个元素之后插入一个新元素B.删除第i(1≤i≤n)个元素C.对顺序表中的元素进行排序D.访问第i(1≤i≤n)个元素的前驱和后继

若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为______。A.1B.11C.iD.i+l

采用插入排序算法对n个整数排序,其基本思想是:在插入第i个整数时,前i-1个整数已经排好序,将第i个整数依次和第i-1,i-2,…个整数进行比较,找到应该插入的位置。现采用插入排序算法对6个整数{5,2,4,6,1,3}进行从小到大排序,则需要进行( )次整数之间的比较。对于该排序算法,输入数据具有(请作答此空)特点时,对整数进行从小到大排序,所需的比较次数最多。A.从小到大B.从大到小C.所有元素相同D.随机分布

采用插入排序算法对n个整数排序,其基本思想是:在插入第i个整数时,前i-1个整数已经排好序,将第i个整数依次和第i-1,i-2,…个整数进行比较,找到应该插入的位置。现采用插入排序算法对6个整数{5,2,4,6,1,3}进行从小到大排序,则需要进行(请作答此空)次整数之间的比较。对于该排序算法,输入数据具有( )特点时,对整数进行从小到大排序,所需的比较次数最多。A. 9B. 10C. 12D. 13

阅读以下说明和C代码,填写程序中的空(1)~(5),将解答写入答题纸的对应栏内。【说明】直接插入排序是一种简单的排序方法,具体做法是:在插入第i个关键码时,k1,k2,…,ki-1已经排好序,这时将关键码ki依次与关键码ki-1,ki-2,…,进行比较,找到ki应该插入的位置时停下来,将插入位置及其后的关键码依次向后移动,然后插入ki。例如,对{17,392,68,36}按升序作直接插入排序时,过程如下:第1次:将392(i=1)插入有序子序列{17},得到{17,392};第2次:将68(i=2)插入有序子序列{17,392},得到{17,68,392};第3次:将36(i=3)插入有序子序列{17,68,392},得到{17,36,68,392},完成排序。下面函数 insertSort用直接插入排序对整数序列进行升序排列,在main函数中调用insertSort并输出排序结果。 【C代码】void insert Sort(int data[],int n)/*用直接插入排序法将data[0]~ data[n-1]中的n个整数进行升序排列*/{ int i,j; int tmp; for(i=1; i=0 j----) //查找插入位置并将元素后移 (2); (3) =tmp; //插入正确位置 }/*if*/ }/*for*/}/*insertSort*/ int main(){ int *bp,*ep; int n,arr[]={17,392,68,36,291,776,843,255}; n = sizeof(arr) / sizeof(int); insertSort(arr,n); bp= (4) ; ep = arr+n; for( ;bp=0 j----) //查找插入位置并将元素后移 (2); (3) =tmp; //插入正确位置 }/*if*/ }/*for*/}/*insertSort*/ int main(){ int *bp,*ep; int n,arr[]={17,392,68,36,291,776,843,255}; n = sizeof(arr) / sizeof(int); insertSort(arr,n); bp= (4) ; ep = arr+n; for( ;bp

含有n个元素的线性表采用顺序存储方式时,对其运算速度最快的操作是( )。A.访问第i个元素(1≤i≤n)B.删除第i个元素(1≤i≤n)C.在第i个元素(1≤i≤n)之后插入一个新元素D.查找与特定值相匹配的元素

对n个关键码构成的序列采用直接插入排序法进行升序排序的过程是:在插入第i个关键码Ki时,其前面的i-1个关键码己排好序,因此令Ki与Ki-1、Ki-2、...,依次比较,最多到K1为止,找到插入位置并移动相关元素后将Ki插入有序子序 列的适当位置,完成本趟(即第i-1趟)排序。以下关于直接插入排序的叙述中,正确的是( )。 A. 若原关键码序列已经升序排序,则排序过程中关键码间的比较次数最少 B.若原关键码序列已经降序排序,则排序过程中关键码间的比较次数最少 C.第1趟完成后即可确定整个序列的最小关键码 D.第1趟完成后即可确定整个序列的最大关键码

采用插入排序算法对n个整数排序,其基本思想是:在插入第i个整数时,前i-1个整数己经排好序,将第i个整数依次和第i-1,i-2,...个整数进行比较,找到应该插入的位置。现采用插入排序算法对6个整数{5,2,4,6,1,3}进行从小到大排序,则需要进行( )次整数之间的比较。A.9B.10C.12D.13

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

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

若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为()A、1B、i-1C、iD、i+l

在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。A、访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)B、在第i个结点后插入一个新结点(1≤i≤n)C、删除第i个结点(1≤i≤n)D、将n个结点从小到大排序

在n个结点的线性表的数组实现中,算法的时间复杂度是O(1)的操作是()。A、访问第i(1<=i<=n)个结点和求第i个结点的直接前驱(1<i<=n)B、在第i(1<=i<=n)个结点后插入一个新结点C、删除第i(1<=i<=n)个结点D、以上都不对

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

单选题在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。A访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)B在第i个结点后插入一个新结点(1≤i≤n)C删除第i个结点(1≤i≤n)D将n个结点从小到大排序

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