How does one make this not recursive? template <typename T> void QuickSelect (T*
ID: 3662303 • Letter: H
Question
How does one make this not recursive?
template <typename T>
void QuickSelect (T* v, size_t beg, size_t end, size_t k, size_t& comps)
// partitions array about v[k], that is
// v[i] <= v[k] for i < k and v[i] >= v[k] for i > k
{ if (end - beg < 1) return;
if (k >= end) return;
if (k == 0) return;
size_t p = Partition2(v, beg, end, comps);
if (p > k)
QuickSelect(v, beg, p, k, comps);
if (p < k)
QuickSelect(v, p+1, end, k, comps); }
Explanation / Answer
#include #include #include #include #include #include #include #include #include #include #include #include #include #include // column widths in table const int c1 = 15, c2 = 9 , c3 = 9 , c4 = 13, c5 = 10, c6 = 13; template void XC (T& x , T& y) { T z = x; x = y; y = z; } template bool CheckSort(T* a, size_t low, size_t hih) { if (low >= hih) return 1; if (low == --hih) return 1; for ( ; low a[low+1]) { std::cerrRelated Questions
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.