mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-03-21 04:18:34 +08:00
Documentation for c26eea874d
This commit is contained in:
@@ -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&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<class T > </td></tr>
|
||||
<tr class="memitem:a951127aea9d7e1e53ea9ae0868633246" id="r_a951127aea9d7e1e53ea9ae0868633246"><td class="memTemplParams" colspan="2">template<class T> </td></tr>
|
||||
<tr class="memitem:a951127aea9d7e1e53ea9ae0868633246"><td class="memTemplItemLeft" align="right" valign="top">void </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"> </td></tr>
|
||||
<tr class="memitem:a63aaff7cabfa3da2da8b9477b5fad9d6" id="r_a63aaff7cabfa3da2da8b9477b5fad9d6"><td class="memTemplParams" colspan="2">template<typename T , size_t N> </td></tr>
|
||||
<tr class="memitem:a63aaff7cabfa3da2da8b9477b5fad9d6" id="r_a63aaff7cabfa3da2da8b9477b5fad9d6"><td class="memTemplParams" colspan="2">template<typename T, size_t N> </td></tr>
|
||||
<tr class="memitem:a63aaff7cabfa3da2da8b9477b5fad9d6"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a63aaff7cabfa3da2da8b9477b5fad9d6">show_data</a> (T(&arr)[N])</td></tr>
|
||||
<tr class="separator:a63aaff7cabfa3da2da8b9477b5fad9d6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5669396c6a6b1e14b97589b6e37980aa" id="r_a5669396c6a6b1e14b97589b6e37980aa"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||||
<tr class="memitem:a5669396c6a6b1e14b97589b6e37980aa" id="r_a5669396c6a6b1e14b97589b6e37980aa"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
||||
<tr class="memitem:a5669396c6a6b1e14b97589b6e37980aa"><td class="memTemplItemLeft" align="right" valign="top">void </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"> </td></tr>
|
||||
<tr class="memitem:a4d76603c54d3dc56146e92d10a043924" id="r_a4d76603c54d3dc56146e92d10a043924"><td class="memTemplParams" colspan="2">template<typename T , size_t N> </td></tr>
|
||||
<tr class="memitem:a4d76603c54d3dc56146e92d10a043924" id="r_a4d76603c54d3dc56146e92d10a043924"><td class="memTemplParams" colspan="2">template<typename T, size_t N> </td></tr>
|
||||
<tr class="memitem:a4d76603c54d3dc56146e92d10a043924"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d5/d91/namespacesorting.html#a4d76603c54d3dc56146e92d10a043924">sorting::shell_sort</a> (T(&arr)[N])</td></tr>
|
||||
<tr class="separator:a4d76603c54d3dc56146e92d10a043924"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af2c5b92cbfe73f63f6074c61b0a45331" id="r_af2c5b92cbfe73f63f6074c61b0a45331"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||||
<tr class="memitem:af2c5b92cbfe73f63f6074c61b0a45331" id="r_af2c5b92cbfe73f63f6074c61b0a45331"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
||||
<tr class="memitem:af2c5b92cbfe73f63f6074c61b0a45331"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d5/d91/namespacesorting.html#af2c5b92cbfe73f63f6074c61b0a45331">sorting::shell_sort</a> (std::vector< T > *arr)</td></tr>
|
||||
<tr class="separator:af2c5b92cbfe73f63f6074c61b0a45331"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7eb77daed2cf1513f6d68c47a1c2db1c" id="r_a7eb77daed2cf1513f6d68c47a1c2db1c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||||
<tr class="memitem:a7eb77daed2cf1513f6d68c47a1c2db1c" id="r_a7eb77daed2cf1513f6d68c47a1c2db1c"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
||||
<tr class="memitem:a7eb77daed2cf1513f6d68c47a1c2db1c"><td class="memTemplItemLeft" align="right" valign="top">int </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"> </td></tr>
|
||||
<tr class="memitem:a895b313cb2671e8f712040460325573e" id="r_a895b313cb2671e8f712040460325573e"><td class="memItemLeft" align="right" valign="top">void </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"> </td></tr>
|
||||
<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97" id="r_a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int </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"> </td></tr>
|
||||
<tr class="memitem:a5669396c6a6b1e14b97589b6e37980aa" id="r_a5669396c6a6b1e14b97589b6e37980aa"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
||||
<tr class="memitem:a5669396c6a6b1e14b97589b6e37980aa"><td class="memTemplItemLeft" align="right" valign="top">void </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"> </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<typename T > </div>
|
||||
template<typename T> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int compare </td>
|
||||
@@ -282,7 +285,7 @@ template<typename T > </div>
|
||||
<div class="line"><span class="lineno"> 219</span> std::cout << <span class="stringliteral">"Unsorted original data: "</span> << 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 << std::endl</div>
|
||||
@@ -298,17 +301,63 @@ template<typename T > </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">◆ </a></span>shell_sort()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T> </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> )</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> < 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 < 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 >= gap && (arr[j - gap] - tmp) > 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">◆ </a></span>show_data() <span class="overload">[1/2]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
template<class T> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void show_data </td>
|
||||
@@ -348,7 +397,7 @@ template<class T > </div>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T , size_t N> </div>
|
||||
template<typename T, size_t N> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void show_data </td>
|
||||
@@ -403,7 +452,7 @@ template<typename T , size_t N> </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<</span><span class="keywordtype">double</span><span class="keyword">></span>(end - start) / CLOCKS_PER_SEC;</div>
|
||||
<div class="line"><span class="lineno"> 161</span> std::cout << <span class="stringliteral">"Time spent sorting using shell_sort2: "</span> << elapsed_time</div>
|
||||
@@ -459,7 +508,7 @@ template<typename T , size_t N> </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<</span><span class="keywordtype">double</span><span class="keyword">></span>(end - start) / CLOCKS_PER_SEC;</div>
|
||||
<div class="line"><span class="lineno"> 120</span> std::cout << <span class="stringliteral">"Time spent sorting using shell_sort2: "</span> << elapsed_time</div>
|
||||
@@ -491,7 +540,7 @@ template<typename T , size_t N> </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>
|
||||
|
||||
Reference in New Issue
Block a user