Documentation for c26eea874d

This commit is contained in:
realstealthninja
2025-05-19 11:38:33 +00:00
parent c7a9a42397
commit 14583a2f33
2829 changed files with 30266 additions and 21669 deletions

View File

@@ -4,7 +4,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>TheAlgorithms/C++: sorting/shell_sort2.cpp File Reference</title>
<link rel="icon" href="../../favicon.svg" type="image/x-icon" />
@@ -60,7 +60,7 @@ window.MathJax = {
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -152,22 +152,22 @@ Namespaces</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a951127aea9d7e1e53ea9ae0868633246" id="r_a951127aea9d7e1e53ea9ae0868633246"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a951127aea9d7e1e53ea9ae0868633246" id="r_a951127aea9d7e1e53ea9ae0868633246"><td class="memTemplParams" colspan="2">template&lt;class T&gt; </td></tr>
<tr class="memitem:a951127aea9d7e1e53ea9ae0868633246"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a951127aea9d7e1e53ea9ae0868633246">show_data</a> (T *arr, size_t LEN)</td></tr>
<tr class="separator:a951127aea9d7e1e53ea9ae0868633246"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63aaff7cabfa3da2da8b9477b5fad9d6" id="r_a63aaff7cabfa3da2da8b9477b5fad9d6"><td class="memTemplParams" colspan="2">template&lt;typename T , size_t N&gt; </td></tr>
<tr class="memitem:a63aaff7cabfa3da2da8b9477b5fad9d6" id="r_a63aaff7cabfa3da2da8b9477b5fad9d6"><td class="memTemplParams" colspan="2">template&lt;typename T, size_t N&gt; </td></tr>
<tr class="memitem:a63aaff7cabfa3da2da8b9477b5fad9d6"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a63aaff7cabfa3da2da8b9477b5fad9d6">show_data</a> (T(&amp;arr)[N])</td></tr>
<tr class="separator:a63aaff7cabfa3da2da8b9477b5fad9d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5669396c6a6b1e14b97589b6e37980aa" id="r_a5669396c6a6b1e14b97589b6e37980aa"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a5669396c6a6b1e14b97589b6e37980aa" id="r_a5669396c6a6b1e14b97589b6e37980aa"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a5669396c6a6b1e14b97589b6e37980aa"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d5/d91/namespacesorting.html#a5669396c6a6b1e14b97589b6e37980aa">sorting::shell_sort</a> (T *arr, size_t LEN)</td></tr>
<tr class="separator:a5669396c6a6b1e14b97589b6e37980aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d76603c54d3dc56146e92d10a043924" id="r_a4d76603c54d3dc56146e92d10a043924"><td class="memTemplParams" colspan="2">template&lt;typename T , size_t N&gt; </td></tr>
<tr class="memitem:a4d76603c54d3dc56146e92d10a043924" id="r_a4d76603c54d3dc56146e92d10a043924"><td class="memTemplParams" colspan="2">template&lt;typename T, size_t N&gt; </td></tr>
<tr class="memitem:a4d76603c54d3dc56146e92d10a043924"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d5/d91/namespacesorting.html#a4d76603c54d3dc56146e92d10a043924">sorting::shell_sort</a> (T(&amp;arr)[N])</td></tr>
<tr class="separator:a4d76603c54d3dc56146e92d10a043924"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2c5b92cbfe73f63f6074c61b0a45331" id="r_af2c5b92cbfe73f63f6074c61b0a45331"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:af2c5b92cbfe73f63f6074c61b0a45331" id="r_af2c5b92cbfe73f63f6074c61b0a45331"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:af2c5b92cbfe73f63f6074c61b0a45331"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d5/d91/namespacesorting.html#af2c5b92cbfe73f63f6074c61b0a45331">sorting::shell_sort</a> (std::vector&lt; T &gt; *arr)</td></tr>
<tr class="separator:af2c5b92cbfe73f63f6074c61b0a45331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7eb77daed2cf1513f6d68c47a1c2db1c" id="r_a7eb77daed2cf1513f6d68c47a1c2db1c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a7eb77daed2cf1513f6d68c47a1c2db1c" id="r_a7eb77daed2cf1513f6d68c47a1c2db1c"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a7eb77daed2cf1513f6d68c47a1c2db1c"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a> (const void *a, const void *b)</td></tr>
<tr class="separator:a7eb77daed2cf1513f6d68c47a1c2db1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a895b313cb2671e8f712040460325573e" id="r_a895b313cb2671e8f712040460325573e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a895b313cb2671e8f712040460325573e">test_int</a> (const int NUM_DATA)</td></tr>
@@ -176,6 +176,9 @@ Functions</h2></td></tr>
<tr class="separator:a22ea0d1f7943ebb4371d31e44b465b6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97" id="r_a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
<tr class="separator:a0ddf1224851353fc92bfbff6f499fa97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5669396c6a6b1e14b97589b6e37980aa" id="r_a5669396c6a6b1e14b97589b6e37980aa"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a5669396c6a6b1e14b97589b6e37980aa"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a5669396c6a6b1e14b97589b6e37980aa">shell_sort</a> (T *arr, size_t LEN)</td></tr>
<tr class="separator:a5669396c6a6b1e14b97589b6e37980aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a href="https://en.wikipedia.org/wiki/Shell_sort" target="_blank">Shell sort</a> algorithm </p>
@@ -189,7 +192,7 @@ Functions</h2></td></tr>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname">int compare </td>
@@ -282,7 +285,7 @@ template&lt;typename T &gt; </div>
<div class="line"><span class="lineno"> 219</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Unsorted original data: &quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 220</span> <a class="code hl_function" href="#a951127aea9d7e1e53ea9ae0868633246">show_data</a>(<a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>, NUM_DATA);</div>
<div class="line"><span class="lineno"> 221</span> std::clock_t start = std::clock();</div>
<div class="line"><span class="lineno"> 222</span> shell_sort(<a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>, NUM_DATA); <span class="comment">// perform sorting</span></div>
<div class="line"><span class="lineno"> 222</span> <a class="code hl_function" href="#a5669396c6a6b1e14b97589b6e37980aa">shell_sort</a>(<a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>, NUM_DATA); <span class="comment">// perform sorting</span></div>
<div class="line"><span class="lineno"> 223</span> std::clock_t end = std::clock();</div>
<div class="line"><span class="lineno"> 224</span> </div>
<div class="line"><span class="lineno"> 225</span> std::cout &lt;&lt; std::endl</div>
@@ -298,17 +301,63 @@ template&lt;typename T &gt; </div>
<div class="ttc" id="ahash__search_8cpp_html_a6e1a77282bc65ad359d753d25df23243"><div class="ttname"><a href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a></div><div class="ttdeci">int data[MAX]</div><div class="ttdoc">test data</div><div class="ttdef"><b>Definition</b> <a href="../../d1/df3/hash__search_8cpp_source.html#l00024">hash_search.cpp:24</a></div></div>
<div class="ttc" id="aquick__sort__3_8cpp_html_a07e5c62de28aeddea986890ce7ac1bda"><div class="ttname"><a href="../../d3/d4c/quick__sort__3_8cpp.html#a07e5c62de28aeddea986890ce7ac1bda">test_int</a></div><div class="ttdeci">static void test_int()</div><div class="ttdef"><b>Definition</b> <a href="../../d3/d4c/quick__sort__3_8cpp_source.html#l00138">quick_sort_3.cpp:138</a></div></div>
<div class="ttc" id="ashell__sort2_8cpp_html_a22ea0d1f7943ebb4371d31e44b465b6d"><div class="ttname"><a href="#a22ea0d1f7943ebb4371d31e44b465b6d">test_f</a></div><div class="ttdeci">void test_f(const int NUM_DATA)</div><div class="ttdef"><b>Definition</b> <a href="../../d4/d7a/shell__sort2_8cpp_source.html#l00145">shell_sort2.cpp:145</a></div></div>
<div class="ttc" id="ashell__sort2_8cpp_html_a5669396c6a6b1e14b97589b6e37980aa"><div class="ttname"><a href="#a5669396c6a6b1e14b97589b6e37980aa">shell_sort</a></div><div class="ttdeci">void shell_sort(T *arr, size_t LEN)</div><div class="ttdef"><b>Definition</b> <a href="../../d4/d7a/shell__sort2_8cpp_source.html#l00045">shell_sort2.cpp:45</a></div></div>
<div class="ttc" id="ashell__sort2_8cpp_html_a951127aea9d7e1e53ea9ae0868633246"><div class="ttname"><a href="#a951127aea9d7e1e53ea9ae0868633246">show_data</a></div><div class="ttdeci">void show_data(T *arr, size_t LEN)</div><div class="ttdef"><b>Definition</b> <a href="../../d4/d7a/shell__sort2_8cpp_source.html#l00018">shell_sort2.cpp:18</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a5669396c6a6b1e14b97589b6e37980aa" name="a5669396c6a6b1e14b97589b6e37980aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5669396c6a6b1e14b97589b6e37980aa">&#9670;&#160;</a></span>shell_sort()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname">void sorting::shell_sort </td>
<td>(</td>
<td class="paramtype">T *</td> <td class="paramname"><span class="paramname"><em>arr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>LEN</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Optimized algorithm - takes half the time by utilizing Mar </p>
<p class="definition">Definition at line <a class="el" href="../../d4/d7a/shell__sort2_8cpp_source.html#l00045">45</a> of file <a class="el" href="../../d4/d7a/shell__sort2_8cpp_source.html">shell_sort2.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 45</span> {</div>
<div class="line"><span class="lineno"> 46</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> gaps[] = {701, 301, 132, 57, 23, 10, 4, 1};</div>
<div class="line"><span class="lineno"> 47</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> gap_len = 8;</div>
<div class="line"><span class="lineno"> 48</span> <span class="keywordtype">size_t</span> i, j, <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a>;</div>
<div class="line"><span class="lineno"> 49</span> </div>
<div class="line"><span class="lineno"> 50</span> <span class="keywordflow">for</span> (g = 0; <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> &lt; gap_len; <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a>++) {</div>
<div class="line"><span class="lineno"> 51</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> gap = gaps[<a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a>];</div>
<div class="line"><span class="lineno"> 52</span> <span class="keywordflow">for</span> (i = gap; i &lt; LEN; i++) {</div>
<div class="line"><span class="lineno"> 53</span> T tmp = arr[i];</div>
<div class="line"><span class="lineno"> 54</span> </div>
<div class="line"><span class="lineno"> 55</span> <span class="keywordflow">for</span> (j = i; j &gt;= gap &amp;&amp; (arr[j - gap] - tmp) &gt; 0; j -= gap) {</div>
<div class="line"><span class="lineno"> 56</span> arr[j] = arr[j - gap];</div>
<div class="line"><span class="lineno"> 57</span> }</div>
<div class="line"><span class="lineno"> 58</span> </div>
<div class="line"><span class="lineno"> 59</span> arr[j] = tmp;</div>
<div class="line"><span class="lineno"> 60</span> }</div>
<div class="line"><span class="lineno"> 61</span> }</div>
<div class="line"><span class="lineno"> 62</span>}</div>
<div class="ttc" id="acomposite__simpson__rule_8cpp_html_a2f67508d5f392b0321772169342c98ad"><div class="ttname"><a href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">numerical_methods::simpson_method::g</a></div><div class="ttdeci">double g(double x)</div><div class="ttdoc">Another test function.</div><div class="ttdef"><b>Definition</b> <a href="../../d4/d18/composite__simpson__rule_8cpp_source.html#l00115">composite_simpson_rule.cpp:115</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a951127aea9d7e1e53ea9ae0868633246" name="a951127aea9d7e1e53ea9ae0868633246"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a951127aea9d7e1e53ea9ae0868633246">&#9670;&#160;</a></span>show_data() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
template&lt;class T&gt; </div>
<table class="memname">
<tr>
<td class="memname">void show_data </td>
@@ -348,7 +397,7 @@ template&lt;class T &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , size_t N&gt; </div>
template&lt;typename T, size_t N&gt; </div>
<table class="memname">
<tr>
<td class="memname">void show_data </td>
@@ -403,7 +452,7 @@ template&lt;typename T , size_t N&gt; </div>
<div class="line"><span class="lineno"> 155</span> </div>
<div class="line"><span class="lineno"> 156</span> <span class="comment">/* sort using our implementation */</span></div>
<div class="line"><span class="lineno"> 157</span> std::clock_t start = std::clock();</div>
<div class="line"><span class="lineno"> 158</span> shell_sort(<a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>, NUM_DATA);</div>
<div class="line"><span class="lineno"> 158</span> <a class="code hl_function" href="#a5669396c6a6b1e14b97589b6e37980aa">shell_sort</a>(<a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>, NUM_DATA);</div>
<div class="line"><span class="lineno"> 159</span> std::clock_t end = std::clock();</div>
<div class="line"><span class="lineno"> 160</span> <span class="keywordtype">double</span> elapsed_time = <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(end - start) / CLOCKS_PER_SEC;</div>
<div class="line"><span class="lineno"> 161</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time spent sorting using shell_sort2: &quot;</span> &lt;&lt; elapsed_time</div>
@@ -459,7 +508,7 @@ template&lt;typename T , size_t N&gt; </div>
<div class="line"><span class="lineno"> 114</span> </div>
<div class="line"><span class="lineno"> 115</span> <span class="comment">/* sort using our implementation */</span></div>
<div class="line"><span class="lineno"> 116</span> std::clock_t start = std::clock();</div>
<div class="line"><span class="lineno"> 117</span> shell_sort(<a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>, NUM_DATA);</div>
<div class="line"><span class="lineno"> 117</span> <a class="code hl_function" href="#a5669396c6a6b1e14b97589b6e37980aa">shell_sort</a>(<a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>, NUM_DATA);</div>
<div class="line"><span class="lineno"> 118</span> std::clock_t end = std::clock();</div>
<div class="line"><span class="lineno"> 119</span> <span class="keywordtype">double</span> elapsed_time = <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(end - start) / CLOCKS_PER_SEC;</div>
<div class="line"><span class="lineno"> 120</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Time spent sorting using shell_sort2: &quot;</span> &lt;&lt; elapsed_time</div>
@@ -491,7 +540,7 @@ template&lt;typename T , size_t N&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_bb1b521853a9c46347182a9d10420771.html">sorting</a></li><li class="navelem"><a class="el" href="../../d4/d7a/shell__sort2_8cpp.html">shell_sort2.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>