Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Falk Tannhäuser
Bruno CAUSSE wrote:
Avec deux tableaux en allocation auto (pile) Un tableau auto (pile) avec un tableau (tas)
std::swap_ranges(tab_1, tab_1 + N, tab_2);
à condition que les deux tableaux aient le même nombre d'éléments N. Par contre, la complexité est de O(N).
Deux tableaux tas (ce cas la est trivial, il me semble)
Effectivement, si tab_1 et tab_2 sont des pointeurs, il suffit d'un std::swap(tab_1, tab_2); avec une complexité O(1).
En revanche, en C++, on utilise les tableaux "intégrés" uniquement en cas de nécessité absolue et on se sert de std::vector si possible. La bonne novelle est que std::vector<int> tab_1, tab_2; ... std::swap(tab_1, tab_2); fonctionne aussi avec une complexité O(1).
Falk
Bruno CAUSSE wrote:
Avec deux tableaux en allocation auto (pile)
Un tableau auto (pile) avec un tableau (tas)
std::swap_ranges(tab_1, tab_1 + N, tab_2);
à condition que les deux tableaux aient le même nombre
d'éléments N. Par contre, la complexité est de O(N).
Deux tableaux tas (ce cas la est trivial, il me semble)
Effectivement, si tab_1 et tab_2 sont des pointeurs, il suffit
d'un
std::swap(tab_1, tab_2);
avec une complexité O(1).
En revanche, en C++, on utilise les tableaux "intégrés" uniquement en
cas de nécessité absolue et on se sert de std::vector si possible.
La bonne novelle est que
std::vector<int> tab_1, tab_2;
...
std::swap(tab_1, tab_2);
fonctionne aussi avec une complexité O(1).
Avec deux tableaux en allocation auto (pile) Un tableau auto (pile) avec un tableau (tas)
std::swap_ranges(tab_1, tab_1 + N, tab_2);
à condition que les deux tableaux aient le même nombre d'éléments N. Par contre, la complexité est de O(N).
Deux tableaux tas (ce cas la est trivial, il me semble)
Effectivement, si tab_1 et tab_2 sont des pointeurs, il suffit d'un std::swap(tab_1, tab_2); avec une complexité O(1).
En revanche, en C++, on utilise les tableaux "intégrés" uniquement en cas de nécessité absolue et on se sert de std::vector si possible. La bonne novelle est que std::vector<int> tab_1, tab_2; ... std::swap(tab_1, tab_2); fonctionne aussi avec une complexité O(1).