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

四、排序算法

A.快速排序:

procedure qsort(l,r:integer);

var i,j,mid:integer;


相关考题:

●试题一阅读下列算法说明和算法,将应填入(n)处的语句写在答题纸的对应栏内。【说明】为了减少直接插入排序关键字的比较次数,本算法使用了二分(折半)插入法对一个无序数组R[1..n]进行排序。排序思想是对一个待插入元素,先通过二分法(折半)找到插入位置,后移元素后将该元素插入到恰当位置(假设R[]中的元素互不相同)。【算法】1.变量声明X:DataTypei,j,low,high,mid,R0..n2.每循环一次插入一个R[i]循环:i以1为步长,从2到n,反复执行①准备X-R[i]; (1) ;high-i-1;②找插入位置循环:当 (2) 时,反复执行(3)若X.keyR[mid].key则high-mid-1否则 (4)③后移循环:j以-1为步长,从 (5) ,反复执行R[j+1]-R[j]④插入R[low]-X3.算法结束

阅读下列算法说明和算法,将应填入(n)处的语句写在对应栏内。【说明】为了减少直接插入排序关键字的比较次数,本算法使用了二分(折半)插入法对一个无序数组R[1..n]进行排序。排序思想是对一个待插入元素,先通过二分法(折半)找到插入位置,后移元素后将该元素插入到恰当位置。(假设R[]中的元素互不相同)[算法]1.变量声明X: Data Typei,j,low, high,mid,r:0..n2.每循环一次插入一个R[i]循环:i以1为步长,从2到n,反复执行。(1)准备X←R[i];(1); high←i-1;(2)找插入位置循环:当(2)时,反复执行。(3)若X.key<R[mid].key则high←mid-1;否则 (4)(3)后移循环:j以-1为步长,从(5),反复执行。R[j+1]←R[j](4)插入R[low]←X3.算法结束

最小生成树A.Prim算法:procedure prim(v0:integer);varlowcost,closest:array[1..maxn] of integer;i,j,k,min: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;

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;

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