Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
dziemian_rec
Dołączył: 08 Mar 2007
Posty: 38
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: z nikąd
|
Wysłany: Wto 20:35, 05 Lut 2008 Temat postu: |
|
|
eee nie wiem czy dobrze łapie ...
tzn jak mamy np taką tablicę:
8| 5|12| 4| 9| 7|11| 2| 6
-1--2--3--4--5--6--7--8--9
to mam posortować rosnąco pozycje: 1,3,5,7,9
a malejąco 2,4,6,8 ??
albo nie zrozumiałem albo to kiepski pomysł bo po tych operacjach tablica będzie wyglądała tak:
6 |7 | 8| 5 |9 |4 |11 | 2 |12 czyli źle :/
|
|
Powrót do góry |
|
|
|
|
fala (aka tomek)
Dołączył: 03 Lis 2007
Posty: 67
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Łapy
|
Wysłany: Wto 20:55, 05 Lut 2008 Temat postu: |
|
|
W zadaniu 3 podane jest że jest to tablica INTEGERów, a więc zakresem wartości jest INTEGER.
Po zliczeniu wystarczy sprawdzić czy jakaś wartość w tablicy się powtarza i jesli tak to mamy 1 (TRUE), a jeśli nie to 0 (FALSE).
Zad 16 równie dobrze można zrobić z algorytmem Hoare'a. Tylko teraz pytanie czy trzeba dla niego opisywać co ten algorytm robi, czy wystarczy opisać swoje rozwiązanie na zasadzie "do znalezienia największej wartości wykorzystyjemy algorytm Hoare'a"
Jeśli chodzi o sprawdzenie czy to jest BST to faktycznie jest to bardziej złożony problem. Co do tego pomysłu z posortowaniem parzystych i nieparzystych pozycji to dziwnie to wygląda Ale zaraz sprawdzę czy to faktycznie tak działa.
Dziemian, czy jesteś pewien że ta tablica jest zła? Bo na mój pierwszy rzut oka to chyba właśnie jest dobrze... Ale zaraz jeszcze sam to będę sprawdzał.
EDIT: Faktycznie ta tablica "dziemianowa" wygląda nie za bardzo... Frombehind, może dasz jakiś przykład tak coby to zobrazować dokładniej?
Ostatnio zmieniony przez fala (aka tomek) dnia Wto 21:01, 05 Lut 2008, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
|
Frombehind
Dołączył: 25 Sty 2008
Posty: 13
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 21:04, 05 Lut 2008 Temat postu: |
|
|
Nie zrozumiales mnie do konca. Wejsciowa tablica jest zla. Wejsciowa tablica ma byc juz ustawiona T[i]> T[2*i] i T[i]<T[2*i+1]. Dopiero pozniej sortujesz.
Ostatnio zmieniony przez Frombehind dnia Wto 21:05, 05 Lut 2008, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
|
dziemian_rec
Dołączył: 08 Mar 2007
Posty: 38
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: z nikąd
|
Wysłany: Wto 21:07, 05 Lut 2008 Temat postu: |
|
|
heh jakby wejściowa tablica spełniała warunek T[i]> T[2*i] i T[i]<T[2*i+1]
to nie byłoby co robić
problem właśnie jak ją do takiego stanu doprowadzić ...
|
|
Powrót do góry |
|
|
Linka
Dołączył: 13 Mar 2007
Posty: 98
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 21:10, 05 Lut 2008 Temat postu: |
|
|
co do zad 16 i propozycji do rozwiazania algorytmem magicznych piatek..
z WIKI:
Algorytm magicznych piątek to algorytm rozwiązujący problem selekcji, czyli znalezienia k-tej co do wielkości spośród n liczb. Jest on oparty na prostszym algorytmie rozwiązującym ten sam problem, algorytmie Hoare'a.
czyli hoare'em;]
|
|
Powrót do góry |
|
|
fala (aka tomek)
Dołączył: 03 Lis 2007
Posty: 67
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Łapy
|
Wysłany: Wto 21:14, 05 Lut 2008 Temat postu: |
|
|
Ok, tylko zauważ że w zadaniu nie ma podanego tego warunku że tablica jest ustawiona zgodnie z warunkiem T[i] > T[2i] & T[i] < T[2i+1], tam jest podane tylko że jest to drzewo binarne, a w zwykłym drzewie binarnym przecież nie musi być spełniona taka nierówność że L < K < P
[link widoczny dla zalogowanych]
Więc niestety ale Twoje rozwiązanie zakłada duże uproszczenie zadania...
Ten algorytm z piątkami to jest nadal Hoare, tylko lekko zmodowany
|
|
Powrót do góry |
|
|
Frombehind
Dołączył: 25 Sty 2008
Posty: 13
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 21:15, 05 Lut 2008 Temat postu: |
|
|
Qrde a jednak to sortowanie nie idzie.
Chodzi o to ze sam warunek T[i]> T[2*i] i T[i]<T[2*i+1] nie wystarczy. Bo przeslizgna sie bledy. Przyklad:
20 10 30 5 15 17 35
I to jest wlasnie problem z kolokwium.
Ustawienie elementow wedlug tego wzoru to zaden problem, gorzej jest sprawdzic czy elementy sa ulozone rosnaca i malejaco wzgledem korzenia.
Ostatnio zmieniony przez Frombehind dnia Wto 21:21, 05 Lut 2008, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
|
fala (aka tomek)
Dołączył: 03 Lis 2007
Posty: 67
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Łapy
|
Wysłany: Wto 21:23, 05 Lut 2008 Temat postu: |
|
|
Mając drzewo w postaci "drzewa właściwego" a nie jakiejś tablicy, problem jest w sumie prosty bo wystarczy przejrzeć in_order i jak jest ciąg rosnący i już sprawdzone jest, a jak zrobić to z tablicą to w sumie nie wiem...
Tutaj jest jakieś rozwiązanie tego problemu (na samym dole), tyle tylko że jest to rozwiązanie dla takiego "drzewa właściwego"
[link widoczny dla zalogowanych]
Linka - ja wiem że to tak troche chyba nie wypada prosić o to.. ale może mogła byś jakoś te rozwiązane do tej pory zadania co do których nie ma większych wątpliwości ogarnąć? Bo zrobił się już z lekka bałagan, a jako że jesteś z płci tej co to jakoś staranniej notatki ogarnia, to sądze że zrobisz to najlepiej Z góry dziękuję w imieniu wszystkich udzielających się i piszących jutrzejszy egzamin
Ostatnio zmieniony przez fala (aka tomek) dnia Wto 21:40, 05 Lut 2008, w całości zmieniany 3 razy
|
|
Powrót do góry |
|
|
Frombehind
Dołączył: 25 Sty 2008
Posty: 13
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 21:41, 05 Lut 2008 Temat postu: |
|
|
Hmm to zadanie 16 mi cos przypomina. Jak sie nie myle to szczuroskoczek(czyt. Borowska) mowila cos o tym na cwiczeniach z ASD. Jak mnie pamiec nie myli to trzeba uzyc zmodyfikowanego quicksorta, ktory nie sortuje, a tylko sprawdza. Zaraz sprobuje czegos poszukac o tym.
Edit:
Bladz, znalazlem to ale to algorytm Hoare.
Ostatnio zmieniony przez Frombehind dnia Wto 21:46, 05 Lut 2008, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
|
dziemian_rec
Dołączył: 08 Mar 2007
Posty: 38
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: z nikąd
|
Wysłany: Wto 21:46, 05 Lut 2008 Temat postu: |
|
|
to może łatwiejsze pytanie:
jak sprawdzić 8.b) B) ??
Linka, Linka, Linka mały doping zawsze się przyda
|
|
Powrót do góry |
|
|
Frombehind
Dołączył: 25 Sty 2008
Posty: 13
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 21:49, 05 Lut 2008 Temat postu: |
|
|
Identyczny problem jak z 9 .....
|
|
Powrót do góry |
|
|
dziemian_rec
Dołączył: 08 Mar 2007
Posty: 38
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: z nikąd
|
Wysłany: Wto 21:50, 05 Lut 2008 Temat postu: |
|
|
w 9 trzeba zaimplementować poprawne tworzenie, a tu tylko sprawdzić nierekurencyjnie więc może będzie łatwiej ...
|
|
Powrót do góry |
|
|
fala (aka tomek)
Dołączył: 03 Lis 2007
Posty: 67
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Łapy
|
Wysłany: Wto 21:53, 05 Lut 2008 Temat postu: |
|
|
Co do zadania z wyszukiwaniem elementów to ja mam wrażenie że już na 1szej stronie pisałem że do tego służy algorytm Hoare'a, i w międzyczasie się to kilka razy powtarzało (chociażby przy tej metodzie z "5tkami" która jest zmodyfikowanym Hoare'm)
A zadanie faktycznie było identyczne u szczuroskoczka, tyle tylko że trzeba było znaleźć element bodajrze 4-ty największy.
Moge przepisać zaraz kod który skoczek dawał na swoich kartkach bo mam to pod ręką jeśli ktoś byłby zainteresowany.
|
|
Powrót do góry |
|
|
dziemian_rec
Dołączył: 08 Mar 2007
Posty: 38
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: z nikąd
|
Wysłany: Wto 22:00, 05 Lut 2008 Temat postu: |
|
|
tylko że z tego co tu wyczytałem horae ma złożoność pesymistyczną n^2 ... czyli buba
Kod: | int partition(int l, int r, int* tab)
{
int v=tab[l], tmp;
int i=l+1;
int j=r;
do
{
while (tab[i]<v) {i++; c++;}
while (tab[j]>v) {j--; c++;}
if(i<=j)
{
tmp=tab[i];
tab[i]=tab[j];
tab[j]=tmp;
i++;
j--;
}
}
while(i<=j);
tab[l]=tab[j];
tab[j]=v;
return j;
}
int horae(int l, int r, int k, int* tab)
{
int j;
if(l<r)
{
j=partition(l,r,tab);
if(k==r-j+1) return j;
if(k<r-j+1) return horae(j+1,r,k,tab);
return horae(l,j-1,k-(r-j+1),tab);
}
return l;
} |
Ostatnio zmieniony przez dziemian_rec dnia Wto 22:02, 05 Lut 2008, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
|
Linka
Dołączył: 13 Mar 2007
Posty: 98
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 22:03, 05 Lut 2008 Temat postu: |
|
|
co mam zrobic? w jeden post wszystko co dotychcasz ustalone zostalo?
|
|
Powrót do góry |
|
|