<p><span style="font-size: medium;">我们假定输入是个数组A[0...n],length[A]=n,另外,我们还需要两个数组:存放结果的B[1..n],以及提供临时存储的C[0...k].</span></p>
<p><span style="font-size: medium;">COUNT_SORT(A,B,k)</span></p>
<p><span style="font-size: medium;">1. for i=0 to k</span></p>
<p><span style="font-size: medium;">2. do C[i]=0</span></p>
<p><span style="font-size: medium;">3.for j=1 to length[A]</span></p>
<p><span style="font-size: medium;">4, doC[A[ j ]]=C[A[ j ]] + 1</span></p>
<p><span style="font-size: medium;">5, for i =1to k</span></p>
<p><span style="font-size: medium;">6,do C[i]=C[i] + C[i-1]</span></p>
<p><span style="font-size: medium;">7, for j = length[A] downto 1</span></p>
<p><span style="font-size: medium;">8, do B[C[A[ j ]]] =A[j]</span></p>
<p><span style="font-size: medium;">9, C[A[ j ]] = C[A[ j ]] -1</span></p>
<p><span style="font-size: medium;">COUNT_SORT(A,B,k)</span></p>
<p><span style="font-size: medium;">1. for i=0 to k</span></p>
<p><span style="font-size: medium;">2. do C[i]=0</span></p>
<p><span style="font-size: medium;">3.for j=1 to length[A]</span></p>
<p><span style="font-size: medium;">4, doC[A[ j ]]=C[A[ j ]] + 1</span></p>
<p><span style="font-size: medium;">5, for i =1to k</span></p>
<p><span style="font-size: medium;">6,do C[i]=C[i] + C[i-1]</span></p>
<p><span style="font-size: medium;">7, for j = length[A] downto 1</span></p>
<p><span style="font-size: medium;">8, do B[C[A[ j ]]] =A[j]</span></p>
<p><span style="font-size: medium;">9, C[A[ j ]] = C[A[ j ]] -1</span></p>
本文详细介绍了计数排序算法的实现过程,通过初始化辅助数组C并进行元素计数,最终将排序结果存入数组B中。该算法适用于整数排序且数值范围不大的情况。

被折叠的 条评论
为什么被折叠?



