网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

F. 归并排序

{a为序列表,tmp为辅助数组}

procedure merge(var a:listtype; p,q,r:integer);

{将已排序好的子序列a[p..q]与a[q+1..r]合并为有序的tmp[p..r]}

var I,j,t:integer;

tmp:listtype;


参考答案

更多 “ F. 归并排序{a为序列表,tmp为辅助数组}procedure merge(var a:listtype; p,q,r:integer);{将已排序好的子序列a[p..q]与a[q+1..r]合并为有序的tmp[p..r]}var I,j,t:integer;tmp:listtype; ” 相关考题
考题 如果Add函数的调用代码为:func main() {var a Integer = 1var b Integer = 2var i interface{} = asum := i.(Integer).Add(b)fmt.Println(sum)}则Add函数定义正确的是() A.type Integer intfunc (a Integer) Add(b Integer) Integer { return a + b}B.type Integer intfunc (a Integer) Add(b *Integer) Integer { return a + *b}C.type Integer intfunc (a *Integer) Add(b Integer) Integer { return *a + b}D.type Integer intfunc (a *Integer) Add(b *Integer) Integer { return *a + *b}

考题 Afteryoubackup/exportusingafilesystemsnapshot,andyouhaveremovedthesnapshot,youalsoneedtoremovethebackingstore.Ifthesnapshotwascreatedwith: mkdir/var/tmp/backup-snapsfssnap-obs=/var/tmp/backup-snaps/exportWhichfiledoyouneedtoremove?()A.AB.BC.CD.D

考题 阅读以下算法说明,根据要求回答问题1~问题3。[说明]快速排序是一种典型的分治算法。采用快速排序对数组A[p..r]排序的3个步骤如下。1.分解:选择一个枢轴(pivot)元素划分数组。将数组A[p..r]划分为两个子数组(可能为空)A[p..q-1]和A[q+1..r],使得A[q]大于等于A[p..q-1]中的每个元素,小于A[q+1..r]中的每个元素。q的值在划分过程中计算。2.递归求解:通过递归的调用快速排序,对子数组A[p..q-1]和A[q+1..r]分别排序。3.合并:快速排序在原地排序,故无需合并操作。下面是快速排序的伪代码,请将空缺处(1)~(3)的内容填写完整。伪代码中的主要变量说明如下。A:待排序数组p,r:数组元素下标,从p到rq:划分的位置x:枢轴元素i:整型变量,用于描述数组下标。下标小于或等于i的元素的值,小于或等于枢轴元素的值j:循环控制变量,表示数组元素下标

考题 四、排序算法A.快速排序:procedure qsort(l,r:integer);var i,j,mid:integer;

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

考题 C.选择排序:procedure sort;var i,j,k:integer;

考题 D. 冒泡排序procedure bubble_sort;var i,j,k:integer;

考题 E.堆排序:procedure sift(i,m:integer);{调整以i为根的子树成为堆,m为结点总数}var k:integer;

考题 高精度数的定义:typehp=array[1..maxlen] of integer;1.高精度加法procedure plus ( a,b:hp; var c:hp);var i,len:integer;

考题 高精度减法procedure substract(a,b:hp;var c:hp);var i,len:integer;

考题 高精度乘以低精度procedure multiply(a:hp;b:longint;var c:hp);var i,len:integer;

考题 高精度乘以高精度procedure high_multiply(a,b:hp; var c:hp}var i,j,len:integer;

考题 高精度除以低精度procedure devide(a:hp;b:longint; var c:hp; var d:longint);{c:=a div b; d:= a mod b}var i,len:integer;

考题 已知前序中序求后序procedure Solve(pre,mid:string);var i:integer;

考题 链表的定位函数loc(I:integer):pointer; {寻找链表中的第I个结点的指针}procedure loc(L:linklist; I:integer):pointer;var p:pointer;j:integer;

考题 单链表的插入操作procedure insert(L:linklist; I:integer; x:datatype);var p,q:pointer;

考题 单链表的删除操作procedure delete(L:linklist; I:integer);var p,q:pointer;

考题 下列程序是将数组a的元素倒序交换,即第1个变为最后一个,第2个变为倒数第2个,完成下列程序。Private Sub Backward(a())Dim i As Integer,Tmp As IntegerFori=1 To5Tmp=a(i)a(5-i)=TmpNextiEnd Sub

考题 阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 采用归并排序对n个元素进行递增排序时,首先将n个元素的数组分成各含n/2个元素的两个子数组,然后用归并排序对两个子数组进行递归排序,最后合并两个已经排好序的子数组得到排序结果。 下面的C代码是对上述归并算法的实现,其中的常量和变量说明如下: arr:待排序数组 p,q,r:一个子数组的位置从p到q,另一个子数组的位置从q+1到r begin,end:待排序数组的起止位置 left,right:临时存放待合并的两个子数组 n1,n2:两个子数组的长度 i,j,k:循环变量 mid:临时变量 【C代码】inciudestdio.h inciudestdlib.h define MAX 65536 void merge(int arr[],int p,int q,int r) { int *left, *right; int n1,n2,i,j,k; n1=q-p+1; n2=r-q; if((left=(int*)malloc((n1+1)*sizeof(int)))=NULL) { perror(malloc error); exit(1); } if((right=(int*)malloc((n2+1)*sizeof(int)))=NULL) { perror(malloc error); exit(1); } for(i=0;in1;i++){ left[i]=arr[p+i]; } left[i]=MAX; for(i=0; in2; i++){ right[i]=arr[q+i+1] } right[i]=MAX; i=0; j=0; for(k=p; (1) ; k++) { if(left[i] right[j]) { (2) ; j++; }else { arr[k]=left[i]; i++; } } } void mergeSort(int arr[],int begin,int end){ int mid; if( (3) ){ mid=(begin+end)/2; mergeSort(arr,begin,mid); (4) ; merge(arr,begin,mid,end); } }【问题1】 根据以上说明和C代码,填充1-4。 【问题2】 根据题干说明和以上C代码,算法采用了(5)算法设计策略。 分析时间复杂度时,列出其递归式位(6),解出渐进时间复杂度为(7)(用O符号表示)。空间复杂度为(8)(用O符号表示)。 【问题3】 两个长度分别为n1和n2的已经排好序的子数组进行归并,根据上述C代码,则元素之间比较次数为(9)。

考题 阅读下列说明和C代码,回答下列问题。[说明]?? ?采用归并排序对n个元素进行递增排序时,首先将n个元素的数组分成各含n/2个元素的两个子数组,然后用归并排序对两个子数组进行递归排序,最后合并两个已经排序的子数组得到排序结果。?? ?下面的C代码是对上述归并算法的实现,其中的常量和变量说明如下:?? ?arr:待排序数组?? ?P,q,r:一个子数组的位置从P到q,另一个子数组的位置从q+1到r?? ?begin,end:待排序数组的起止位量?? ?left,right:临时存放待合并的两个子数组?? ?n1,n2:两个子数组的长度?? ?i,j,k:循环变量?? ?mid:临耐变量?? ?[C代码]?? ?#inciude<stdio, h>?? ?#include<stdlib, h>?? ?Define MAX 65536?? ?void merge(int arr [ ],int p,int q,int r) {?? ?int * left,* right;?? ?int n1,n2,I,j,k;?? ?n1=q-p+1;?? ?n2=r-q;?? ?If(left=(int *)malloc((n1+1) * sizeof(int)))=NULL) {?? ?Perror( "malloc error" );?? ?exit11?? ?}?? ?If((right = (int *)malloc((n2+1) * sizeof(int)))=NULL)?? ?Perror("malloc error");?? ?exit 11;?? ?}?? ?for(i=0;i<n1;i++){?? ?left[i]=arr [p+i];?? ?}?? ?left[i]=MAX;?? ?for(i=0;i<n2;i++){?? ?right[i]=arr[q+i+1]?? ?}?? ?right[i]=MAX;?? ?i=0;j=0;?? ?For(k=p;______;k++){?? ?If(left[i]>right[j] {?? ?______?? ?j++;?? ?}else{?? ?arr[k1]=left[i];?? ?i++;?? ?}?? ?}?? ?}?? ?Void merge Sort(int arr[ ], int begin, int end) {?? ?int mid;?? ?if(______){?? ?mid=(begin + end)/2;?? ?merge Sort(arr,begin,mid);?? ?______;?? ?Merge(arr,begin,mid,end);?? ?}?? ?}

考题 分析下面的PASCAL程序,给出正确的运行结果() PROGRAM mx(input,output); VAR R,s,t:integer; PROCEDURE change(a,b:integer); VAR T:integer; BEGIN A:=3*a; B:=2*b; T:=a+b; End; BEGIN R:=2;s:=4;t:=6; Change(r,s); Writeln(‘r=’,r,’s=’,s,’t=’,t)End.A、r=2 s=4 t=6B、r=2 s=4 t=14C、r=6 s=8 t=6D、r=6 s=8 t=14

考题 Which log contains the output generated when starting and stopping a cluster?()A、 tmp/cspoc.logB、 /tmp/hacmp.outC、 /var/adm/ras/hacmp.errorD、 /var/hacmp/clcomd/clcomddiag.log

考题 How do you write the current candidate configuration to the permanent storage media?()A、[edit] user@router# save /var/tmp/current.confB、[edit] user@router# write /var/tmp/current.confC、[edit] user@router# commit /var/tmp/current.confD、[edit] user@router# dump /var/tmp/current.conf

考题 To which directory does the Junos OS write traceoptions files?()A、/var/tmp/B、/var/C、/var/log/D、/var/home/username/

考题 单选题How do you write the current candidate configuration to the permanent storage media?()A [edit] user@router# save /var/tmp/current.confB [edit] user@router# write /var/tmp/current.confC [edit] user@router# commit /var/tmp/current.confD [edit] user@router# dump /var/tmp/current.conf

考题 单选题Which log contains the output generated when starting and stopping a cluster?()A  tmp/cspoc.logB  /tmp/hacmp.outC  /var/adm/ras/hacmp.errorD  /var/hacmp/clcomd/clcomddiag.log

考题 单选题To which directory does the Junos OS write traceoptions files?()A /var/tmp/B /var/C /var/log/D /var/home/username/