[演算法笔记] 排序计数法

void counting_sort()
{
    int array[5] = {3, 6, 9, 9, 1}; //对5个数进行排序,用i表示
    int c[ 9 + 1 ] = {};            //数字范围是0~9,用j表示
    
    for (int i = 0; i < 5; i++){  //统计数字数量
        c[array[i]]++; 
    }

    for (int j = 0, i = 0; j < 10 && i < 5; j++){ //从小到大读取lookup table,并排序
        while (c[j] > 0){
            c[j]--;
            array[i++] = j; 
        }
    }
}

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注