2
mergesort_algoritihm(ub,lb,n,a[],temp[],j) step 1 set ub=n-1; lb=0; mid=(ub+lb)/2; step 2 if (ub=lb) return ; step 3 dismantle(a[],lb,mid) dismantle(a[],mid+1,ub) mergesort(a[],lb,mid,ub) step 4 return } dismantle(a[],lbound,ubound) { step 1 if lbound=ubound return; step 2 set mid=(ubound+lbound)/2; dismantle(a[],lbound,mid) dismantle(a[],mid+1,lbound) merge(a[],lbound,mid,ubound); step 3 return; } merge(a[],lbound,mid,ubound) { step 1 lb=lbound; ub=mid+1; j=lbound; if ub=lb return step 2 while(lb=<mid&&ub<=ubound) { if a[lb]<a[ub] { set temp[j]=a[lb] j=j++; lb=lb++;

Merge Sort

Embed Size (px)

DESCRIPTION

provides a pseudo code for implementation of merge sorting.

Citation preview

Page 1: Merge Sort

mergesort_algoritihm(ub,lb,n,a[],temp[],j)step 1setub=n-1;lb=0;mid=(ub+lb)/2;

step 2if (ub=lb)return ;

step 3dismantle(a[],lb,mid)dismantle(a[],mid+1,ub)mergesort(a[],lb,mid,ub)

step 4return}

dismantle(a[],lbound,ubound){step 1if lbound=uboundreturn;

step 2setmid=(ubound+lbound)/2;

dismantle(a[],lbound,mid)dismantle(a[],mid+1,lbound)merge(a[],lbound,mid,ubound);

step 3return;}

merge(a[],lbound,mid,ubound){step 1lb=lbound;ub=mid+1;j=lbound;if ub=lbreturn

step 2while(lb=<mid&&ub<=ubound){if a[lb]<a[ub]{settemp[j]=a[lb]j=j++;lb=lb++;

Page 2: Merge Sort

}

else{settemp[j]=a[ub]j=j++ub=ub++}

}while(lb<=mid){settemp[j]=a[lb]j=j++;lb=lb++;}

while(ub<=ubound){temp[j]=a[ub]j=j++ub=ub++}}