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

Znalezienie elementu w tablicy, który się nie powtarza

Object Storage Arubacloud
0 głosów
226 wizyt
pytanie zadane 1 kwietnia 2018 w Android, Swift, Symbian przez miriv Nowicjusz (120 p.)
Witam,

mam taką tablice [1,2,3,4,1,2,3], są tu 3 pary, które się powtarzają, tylko jedna cyfra się nie powtarza. Chce napisać algorytm, który mi tą cyfrę znajdzie. Wiecie jak mogę takie coś napisać używając złożoności obliczeniowej nlogn??

Z góry dzięki i pozdrawiam.

1 odpowiedź

0 głosów
odpowiedź 2 kwietnia 2018 przez Wiciorny Ekspert (269,590 p.)
Ja bym to napisał na przeglądaniu tablicy i wrzycaniu elementów do kolejki,  jeśli napotkasz element  po raz kolejny, usuwasz go z kolejki w ten sposób na końcu powinno znaleźć ( elementy w kolejce ) -> odpowiadające tylko jednemu wystąpieniu elementu w zbiorze liczbowym [ jeśli będzie kilka liczb tylko po 1, to wtedy kolejka bedzie miała kilka elementów ]
komentarz 2 kwietnia 2018 przez miriv Nowicjusz (120 p.)

Mam inną koncepcje, że biorę element z tablicy i sprawdzam czy jest on w tablicy, jeśli tak to jadę dalej i zostaje tylko ten jeden element i to będzie miało złożoność nlogn.

Tylko nie wiem jak to w Swifcie mogę dobrze napisać. Jakieś pomysły? :P

komentarz 2 kwietnia 2018 przez Aisekai Nałogowiec (42,190 p.)
Jesteś pewien, że to będzie miało nlogn a nie n2? Ten problem można sformułować inaczej:

"Poszukujemy liczby w zbiorze, dla której nie istnieje druga liczba w tym zbiorze, których suma będzie wynosić dwukrotnosc tej liczby" - wniosek: w przypadku pesymistycznym będziesz miał złożoność n2. A o ile dobrze pamiętam, na studiach robiliśmy taki przykład (tylko, że nie było z góry narzuconej sumy dwóch liczb, tylko szukanie dwóch elementów których suma jest równa np 9) i wyszło, że złożoność jest kwadratowa.
komentarz 2 kwietnia 2018 przez Wiciorny Ekspert (269,590 p.)

@Aisekai, jak mowa o złożoności zawsze podajemy pesymistyczną ...  z defyinicji notacji wielkiego O chociażby 

Złożoność obliczeniowa a funkcja Złożoność obliczeniową określamy jako funkcję danych wejściowych algorytmu. Wyznacza się ją jak opisałem w poprzednim punkcie - licząc operacje. O ile dla naukowców znalezienie dokładnej funkcji może być bardzo istotne, to w praktyce wystarczą jej oszacowania. Takie oszacowania to notacja Ο (dużego O), notacja Ω (omega) i notacja Θ (theta).

Więc jesli mowa o złożonośc O(nlogn) to jest to złożoność pesymistyczna z definicji funkcji 

komentarz 2 kwietnia 2018 przez mokrowski Mędrzec (155,460 p.)
Naiwne podejście to słownik w którym kluczem będzie element a wartością licznik wystąpień. Po przejrzeniu danych i inkrementacji wartości danego klucza, przeglądasz słownik i drukujesz tylko te wartości które mają licznik 1. Popatrz na złożoności i myślę że wystarczy :)
komentarz 3 kwietnia 2018 przez Aisekai Nałogowiec (42,190 p.)

@Wiciorny, na studiach byłem uczony, że jeśli mamy podać złożoność obliczeniowa, to podajemy średnią. Ale jeżeli jest tak jak mówisz, to dobrze wiedzieć.  Zawsze się człowiek czegoś nowego uczy.

Dzięki. 

Podobne pytania

0 głosów
1 odpowiedź 480 wizyt
pytanie zadane 9 maja 2016 w C i C++ przez gsharp Początkujący (280 p.)
+1 głos
1 odpowiedź 547 wizyt
0 głosów
2 odpowiedzi 721 wizyt

92,536 zapytań

141,377 odpowiedzi

319,452 komentarzy

61,922 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!

...