mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-03-30 16:51:57 +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/count_inversions.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');
|
||||
@@ -153,19 +153,19 @@ 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:aad643c14734394e784a75169cb58132f" id="r_aad643c14734394e784a75169cb58132f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||||
<tr class="memitem:aad643c14734394e784a75169cb58132f" id="r_aad643c14734394e784a75169cb58132f"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
||||
<tr class="memitem:aad643c14734394e784a75169cb58132f"><td class="memTemplItemLeft" align="right" valign="top">uint32_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aad643c14734394e784a75169cb58132f">sorting::inversion::merge</a> (T *arr, T *temp, uint32_t left, uint32_t mid, uint32_t right)</td></tr>
|
||||
<tr class="memdesc:aad643c14734394e784a75169cb58132f"><td class="mdescLeft"> </td><td class="mdescRight">Function to merge two sub-arrays. <br /></td></tr>
|
||||
<tr class="separator:aad643c14734394e784a75169cb58132f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae97a486e14101c4822ea8dc47f0d1661" id="r_ae97a486e14101c4822ea8dc47f0d1661"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||||
<tr class="memitem:ae97a486e14101c4822ea8dc47f0d1661" id="r_ae97a486e14101c4822ea8dc47f0d1661"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
||||
<tr class="memitem:ae97a486e14101c4822ea8dc47f0d1661"><td class="memTemplItemLeft" align="right" valign="top">uint32_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ae97a486e14101c4822ea8dc47f0d1661">sorting::inversion::mergeSort</a> (T *arr, T *temp, uint32_t left, uint32_t right)</td></tr>
|
||||
<tr class="memdesc:ae97a486e14101c4822ea8dc47f0d1661"><td class="mdescLeft"> </td><td class="mdescRight">Implement merge Sort and count inverions while merging. <br /></td></tr>
|
||||
<tr class="separator:ae97a486e14101c4822ea8dc47f0d1661"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3332498eabf6579ef059c0d0e9f4ec80" id="r_a3332498eabf6579ef059c0d0e9f4ec80"><td class="memTemplParams" colspan="2">template<class T > </td></tr>
|
||||
<tr class="memitem:a3332498eabf6579ef059c0d0e9f4ec80" id="r_a3332498eabf6579ef059c0d0e9f4ec80"><td class="memTemplParams" colspan="2">template<class T> </td></tr>
|
||||
<tr class="memitem:a3332498eabf6579ef059c0d0e9f4ec80"><td class="memTemplItemLeft" align="right" valign="top">uint32_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a3332498eabf6579ef059c0d0e9f4ec80">sorting::inversion::countInversion</a> (T *arr, const uint32_t size)</td></tr>
|
||||
<tr class="memdesc:a3332498eabf6579ef059c0d0e9f4ec80"><td class="mdescLeft"> </td><td class="mdescRight">Function <a class="el" href="#a3332498eabf6579ef059c0d0e9f4ec80" title="Function countInversion() returns the number of inversion present in the input array....">countInversion()</a> returns the number of inversion present in the input array. Inversions are an estimate of how close or far off the array is to being sorted. <br /></td></tr>
|
||||
<tr class="separator:a3332498eabf6579ef059c0d0e9f4ec80"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a851ca6a0391d14fb49a97d55e4377497" id="r_a851ca6a0391d14fb49a97d55e4377497"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||||
<tr class="memitem:a851ca6a0391d14fb49a97d55e4377497" id="r_a851ca6a0391d14fb49a97d55e4377497"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
||||
<tr class="memitem:a851ca6a0391d14fb49a97d55e4377497"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a851ca6a0391d14fb49a97d55e4377497">sorting::inversion::show</a> (T *arr, const uint32_t array_size)</td></tr>
|
||||
<tr class="memdesc:a851ca6a0391d14fb49a97d55e4377497"><td class="mdescLeft"> </td><td class="mdescRight">UTILITY function to print array. <br /></td></tr>
|
||||
<tr class="separator:a851ca6a0391d14fb49a97d55e4377497"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
@@ -202,7 +202,7 @@ Algorithm</h3>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class T > </div>
|
||||
template<class T> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t sorting::inversion::countInversion </td>
|
||||
@@ -233,9 +233,9 @@ template<class T > </div>
|
||||
<div class="line"><span class="lineno"> 165</span> std::vector<T> temp;</div>
|
||||
<div class="line"><span class="lineno"> 166</span> temp.reserve(size);</div>
|
||||
<div class="line"><span class="lineno"> 167</span> temp.assign(size, 0);</div>
|
||||
<div class="line"><span class="lineno"> 168</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d5/d4c/group__sorting.html#gab6b14fea48d9841e29b9fc26be6e05d7">mergeSort</a>(arr, temp.data(), 0, size - 1);</div>
|
||||
<div class="line"><span class="lineno"> 168</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#ae97a486e14101c4822ea8dc47f0d1661">mergeSort</a>(arr, temp.data(), 0, size - 1);</div>
|
||||
<div class="line"><span class="lineno"> 169</span>}</div>
|
||||
<div class="ttc" id="agroup__sorting_html_gab6b14fea48d9841e29b9fc26be6e05d7"><div class="ttname"><a href="../../d5/d4c/group__sorting.html#gab6b14fea48d9841e29b9fc26be6e05d7">mergeSort</a></div><div class="ttdeci">void mergeSort(int *arr, int l, int r)</div><div class="ttdef"><b>Definition</b> <a href="../../d5/df4/merge__sort_8cpp_source.html#l00071">merge_sort.cpp:71</a></div></div>
|
||||
<div class="ttc" id="acount__inversions_8cpp_html_ae97a486e14101c4822ea8dc47f0d1661"><div class="ttname"><a href="#ae97a486e14101c4822ea8dc47f0d1661">sorting::inversion::mergeSort</a></div><div class="ttdeci">uint32_t mergeSort(T *arr, T *temp, uint32_t left, uint32_t right)</div><div class="ttdoc">Implement merge Sort and count inverions while merging.</div><div class="ttdef"><b>Definition</b> <a href="../../d2/d26/count__inversions_8cpp_source.html#l00132">count_inversions.cpp:132</a></div></div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
@@ -274,7 +274,7 @@ template<class T > </div>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T > </div>
|
||||
template<typename T> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t sorting::inversion::merge </td>
|
||||
@@ -323,14 +323,14 @@ template<typename T > </div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 85</span> {</div>
|
||||
<div class="line"><span class="lineno"> 86</span> uint32_t i = left; <span class="comment">/* i --> index of left sub-array */</span></div>
|
||||
<div class="line"><span class="lineno"> 87</span> uint32_t j = mid + 1; <span class="comment">/* j --> index for right sub-array */</span></div>
|
||||
<div class="line"><span class="lineno"> 88</span> uint32_t <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">k</a> = left; <span class="comment">/* k --> index for resultant array temp */</span></div>
|
||||
<div class="line"><span class="lineno"> 88</span> uint32_t k = left; <span class="comment">/* k --> index for resultant array temp */</span></div>
|
||||
<div class="line"><span class="lineno"> 89</span> uint32_t inv_count = 0; <span class="comment">// inversion count</span></div>
|
||||
<div class="line"><span class="lineno"> 90</span> </div>
|
||||
<div class="line"><span class="lineno"> 91</span> <span class="keywordflow">while</span> ((i <= mid) && (j <= right)) {</div>
|
||||
<div class="line"><span class="lineno"> 92</span> <span class="keywordflow">if</span> (arr[i] <= arr[j]) {</div>
|
||||
<div class="line"><span class="lineno"> 93</span> temp[<a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">k</a>++] = arr[i++];</div>
|
||||
<div class="line"><span class="lineno"> 93</span> temp[k++] = arr[i++];</div>
|
||||
<div class="line"><span class="lineno"> 94</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><span class="lineno"> 95</span> temp[<a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">k</a>++] = arr[j++];</div>
|
||||
<div class="line"><span class="lineno"> 95</span> temp[k++] = arr[j++];</div>
|
||||
<div class="line"><span class="lineno"> 96</span> inv_count +=</div>
|
||||
<div class="line"><span class="lineno"> 97</span> (mid - i +</div>
|
||||
<div class="line"><span class="lineno"> 98</span> 1); <span class="comment">// tricky; may vary depending on selection of sub-array</span></div>
|
||||
@@ -359,7 +359,7 @@ template<typename T > </div>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T > </div>
|
||||
template<typename T> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t sorting::inversion::mergeSort </td>
|
||||
@@ -404,15 +404,15 @@ template<typename T > </div>
|
||||
<div class="line"><span class="lineno"> 135</span> <span class="comment">// midpoint to split the array</span></div>
|
||||
<div class="line"><span class="lineno"> 136</span> mid = (right + left) / 2;</div>
|
||||
<div class="line"><span class="lineno"> 137</span> <span class="comment">// Add inversions in left and right sub-arrays</span></div>
|
||||
<div class="line"><span class="lineno"> 138</span> inv_count += <a class="code hl_function" href="../../d5/d4c/group__sorting.html#gab6b14fea48d9841e29b9fc26be6e05d7">mergeSort</a>(arr, temp, left, mid); <span class="comment">// left sub-array</span></div>
|
||||
<div class="line"><span class="lineno"> 139</span> inv_count += <a class="code hl_function" href="../../d5/d4c/group__sorting.html#gab6b14fea48d9841e29b9fc26be6e05d7">mergeSort</a>(arr, temp, mid + 1, right);</div>
|
||||
<div class="line"><span class="lineno"> 138</span> inv_count += <a class="code hl_function" href="#ae97a486e14101c4822ea8dc47f0d1661">mergeSort</a>(arr, temp, left, mid); <span class="comment">// left sub-array</span></div>
|
||||
<div class="line"><span class="lineno"> 139</span> inv_count += <a class="code hl_function" href="#ae97a486e14101c4822ea8dc47f0d1661">mergeSort</a>(arr, temp, mid + 1, right);</div>
|
||||
<div class="line"><span class="lineno"> 140</span> </div>
|
||||
<div class="line"><span class="lineno"> 141</span> <span class="comment">// inversions in the merge step</span></div>
|
||||
<div class="line"><span class="lineno"> 142</span> inv_count += <a class="code hl_function" href="../../d5/d4c/group__sorting.html#ga460c61cd948203b4816bef2accb3fc73">merge</a>(arr, temp, left, mid, right);</div>
|
||||
<div class="line"><span class="lineno"> 142</span> inv_count += <a class="code hl_function" href="#aad643c14734394e784a75169cb58132f">merge</a>(arr, temp, left, mid, right);</div>
|
||||
<div class="line"><span class="lineno"> 143</span> }</div>
|
||||
<div class="line"><span class="lineno"> 144</span> <span class="keywordflow">return</span> inv_count;</div>
|
||||
<div class="line"><span class="lineno"> 145</span>}</div>
|
||||
<div class="ttc" id="agroup__sorting_html_ga460c61cd948203b4816bef2accb3fc73"><div class="ttname"><a href="../../d5/d4c/group__sorting.html#ga460c61cd948203b4816bef2accb3fc73">merge</a></div><div class="ttdeci">void merge(int *arr, int l, int m, int r)</div><div class="ttdef"><b>Definition</b> <a href="../../d5/df4/merge__sort_8cpp_source.html#l00033">merge_sort.cpp:33</a></div></div>
|
||||
<div class="ttc" id="acount__inversions_8cpp_html_aad643c14734394e784a75169cb58132f"><div class="ttname"><a href="#aad643c14734394e784a75169cb58132f">sorting::inversion::merge</a></div><div class="ttdeci">uint32_t merge(T *arr, T *temp, uint32_t left, uint32_t mid, uint32_t right)</div><div class="ttdoc">Function to merge two sub-arrays.</div><div class="ttdef"><b>Definition</b> <a href="../../d2/d26/count__inversions_8cpp_source.html#l00085">count_inversions.cpp:85</a></div></div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
@@ -422,7 +422,7 @@ template<typename T > </div>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T > </div>
|
||||
template<typename T> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void sorting::inversion::show </td>
|
||||
@@ -476,7 +476,7 @@ template<typename T > </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -528,7 +528,7 @@ template<typename T > </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="../../d2/d26/count__inversions_8cpp.html">count_inversions.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