1

3 色の DNF 問題を理解しました。色の数を 5 (0,1,2,3,4) に拡張したいとしますが、それでも O(n) の複雑さを得ることができますか?

したがって、2 が未知の領域である 5 つの領域があると思います。しかし、これを実装する方法は?3 色のアルゴリズムを 5 色に簡単に拡張できますか?

void sort012(int a[], int arr_size){
int lo = 0;
int hi = arr_size - 1;
int mid = 0;

while (mid <= hi){
    switch (a[mid]){
    case 0:
        swap(&a[lo++], &a[mid++]);
        break;
    case 1:
        mid++;
        break;
    case 2:
        swap(&a[mid], &a[hi--]);
        break;
    }
}
}
4

1 に答える 1