49 template <
typename Container>
52 std::cout << std::left << std::setw(15) << label <<
": [";
53 for (
size_t i = 0; i < a.size(); ++i)
64 std::cout <<
"\n=== Random Select (Quickselect) Demonstration ===\n\n";
67 std::cout <<
"Scenario A: Finding the median of an array\n";
69 DynArray<int> arr = {9, 2, 4, 7, 3, 7, 10, 2, 7, 1, 8};
77 std::cout <<
"Position k : " <<
median_idx <<
" (Median)\n";
78 std::cout <<
"Selected Value : " <<
median <<
"\n";
88 std::cout <<
"Scenario B: Finding the top 3 largest elements\n";
94 const size_t k = arr.
size() - 3;
97 std::cout <<
"Position k : " <<
k <<
" (n - 3)\n";
98 std::cout <<
"Selected Value : " <<
k_val <<
"\n";
101 std::cout <<
"Top 3 elements : [";
102 for (
size_t i =
k; i < arr.
size(); ++i)
105 if (i < arr.size() - 1)
115 std::cout <<
"Scenario C: Handling arrays with many duplicates\n";
118 DynArray<int> arr = {5, 5, 5, 2, 5, 5, 8, 5, 5, 1, 5, 9};
124 std::cout <<
"Position k : " <<
k <<
"\n";
125 std::cout <<
"Selected Value : " << val <<
"\n";
132 std::cout <<
"Done.\n";
size_t size() const noexcept
Return the current dimension of array.
Main namespace for Aleph-w library functions.
const T * median(const T &a, const T &b, const T &c, const Compare &cmp=Compare())
Return a pointer to the median value among three elements.
Divide_Conquer_DP_Result< Cost > divide_and_conquer_partition_dp(const size_t groups, const size_t n, Transition_Cost_Fn transition_cost, const Cost inf=dp_optimization_detail::default_inf< Cost >())
Optimize partition DP using divide-and-conquer optimization.
const T & random_select(DynArray< T > &a, const long i, const Compare &cmp=Compare())
Select the i-th smallest element in a DynArray.
void print_rule()
Prints a horizontal rule for example output separation.
void print_array(const char *label, const Container &a)
Lazy and scalable dynamic array implementation.
Comprehensive sorting algorithms and search utilities for Aleph-w.