• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[Algorytmy] Mieszanie dużych tablic

Object Storage Arubacloud
0 głosów
922 wizyt
pytanie zadane 28 grudnia 2016 w C i C++ przez Wi_ktos Bywalec (2,950 p.)
Witam,

 

Chciałbym wymieszać bardzo szybko i bardzo dokładnie tablice wielu elementów mowa tu dokładnie o wektorze, którego rozmiar może być w zakresie (1000000 - 10000000).

Jakieś pomysły/rady :/.

 

Z góry dziękuje za każdą pomoc.
komentarz 28 grudnia 2016 przez niezalogowany
Bardzo dokładnie, czyli jak?
komentarz 28 grudnia 2016 przez Wi_ktos Bywalec (2,950 p.)
To znaczy tak aby posortowana tablica stala sie bardzo nieposortowanai quicksort sobie swietnie z nia radzil :)

2 odpowiedzi

0 głosów
odpowiedź 29 grudnia 2016 przez criss Mędrzec (172,590 p.)
wybrane 29 grudnia 2016 przez Wi_ktos
 
Najlepsza

Skorzystaj z std::shuffle.

komentarz 29 grudnia 2016 przez 10kw10 Pasjonat (22,880 p.)
for (int& x: foo) std::cout << ' ' << x;

co oznacza ten zapis ? czy da sie skrocic petle for ? czy obowiazuje on w obecnym standardzie ?
komentarz 29 grudnia 2016 przez criss Mędrzec (172,590 p.)

 czy da sie skrocic petle for ? czy obowiazuje on w obecnym standardzie ?

Tak.

Znaczy to dosłownie: każdy element z foo przypisz do x i wykonaj na nim operacje wyszczególnione w ciele pętli.

komentarz 29 grudnia 2016 przez 10kw10 Pasjonat (22,880 p.)
czym sie rozni taka tablica od zwyklej ?
komentarz 29 grudnia 2016 przez criss Mędrzec (172,590 p.)
Hm. Przede wszystkim każdy element przypisujesz najpierw do tego iksa i tak operujesz na elementach kontenera zamiast bezpośrednio za pomocą iteratorów/operatora[]. Tutaj masz referencje więc praktycznie nie robi to różnicy. Już pomijając optymalizacje kompilatora który jeszcze bardziej zmniejsza różnice między taką pętlą a "klasyczną". Być może i ostatecznie nie różnią się niczym, ale nie wiem. Poza tym, tylko zapisem.
0 głosów
odpowiedź 29 grudnia 2016 przez morele123 Gaduła (4,790 p.)
Ja to bym zrobił na liście. Szybciej niż na liście się i tak chyba nie da.

Podobne pytania

0 głosów
2 odpowiedzi 506 wizyt
pytanie zadane 5 stycznia 2017 w C i C++ przez Marchewka900 Bywalec (2,970 p.)
0 głosów
0 odpowiedzi 97 wizyt
0 głosów
1 odpowiedź 300 wizyt
pytanie zadane 16 listopada 2020 w C i C++ przez Eriss69 Gaduła (4,470 p.)

92,576 zapytań

141,425 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...