Count Sort Back

  • 計數排序: 計算某元素前有k個小於它的元素, 則該元素放在第k+1位
  • 时间复杂度: (最好,平均,最壞情況)
  • 空間複雜度: /
  • 稳定性: 稳定
  • 适用情况: 小範圍整數, 且範圍不超過個數的量級
/* A[] to store data, B[] to store sorted data */
void COUNTSORT(int A[], int B[], int k, int array_size)
{
    int C[MAXSIZE];
    for (int i = 0; i <= k; i++)
        C[i] = 0;
    for (int j = 0; j <= array_size - 1; j++)
        C[A[j]]++;
    for (int i = 1; i <= k; i++)
        C[i] = C[i] + C[i - 1];

    for (int j = array_size - 1; j >= 0; j--)
    {
        B[C[A[j]] - 1] = A[j];
        C[A[j]]--;
    }
}

results matching ""

    No results matching ""