Subject: Data Strucure and Algorithm in C++
Please fill in the blank fields in the table in the image only
Question:
The following program is a Quick Sort function which consists of two functions:quicksort()andpartition() .
Code:
// Quick Sort function
int partition(int T[], int first,int last)
{ int pivot, temp;
int loop, cutPoint, bottom, top;
pivot= T[0];
bottom=first; top= last;
loop=1; //always TRUE
while (loop) {
while (T[top]>pivot)
{ top--; }
while(T[bottom]<>
{ bottom++; }
if (bottom
temp=T[bottom];
T[bottom]=T[top];
T[top]=temp;
}
else {
loop=0;
cutPoint = top;
}
}//end while
return cutPoint;
}
void quickSort(dataType arrayT[],int first,int last)
{
int cut;
if (first<>
cut = partition(T,first,last);
quickSort(T, first,cut);
quickSort (T, cut+1, last);
}
}
Based on the array named T in the figure below, write the Quick sort partition work trace for cut = partition(T,0,4) until the first cut point by using the item at first index as pivot. In the diagram given, show the following:
i) The movement of bottom and top.
ii) The swapping process.
iii) The cutPoint and the new 2 parts array for the next recursive call.
Extracted text: [0] [1] [2] [3] [4] 9 7 10 5 Fill in the blanks to show the work trace for cut = partition(T,0,4). Current value of bottom and top bottom = top = pivot = Array index [0] [1] [2] [3] [4] Array item Current value of bottom and top bottom = top = Array index Array item [0] [1] [2] [3] [4] Current value of bottom and top bottom = top = cutPoint = Recursive function and array value after cutpoint is returned. quickSort(T, quickSort(T, LO