首页 > 试题广场 >

设有一组初始记录关键字序列(K1,K2,…,Kn),要求设计

[问答题]

设有一组初始记录关键字序列(K1K2,…,Kn),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于Ki,右半部分的每个关键字均大于等于Ki

void quickpass(int r[], int s, int t)

{

int i=s, j=t, x=r[s];

while(i<j){

while (i<j && r[j]>x) j=j-1; if (i<j) {r[i]=r[j];i=i+1;}

while (i<j && r[i]<x) i=i+1; if (i<j) {r[j]=r[i];j=j-1;}

}

r[i]=x;

}

发表于 2017-05-07 09:22:15 回复(2)
能讲讲吗?
发表于 2023-10-18 11:51:50 回复(0)