Jak posortowac plik o dowolnym formacie majacy np 600MB ?--Ucz się ucz bo......
Na jakiej zasadzie ma przebiegać sortowanie pliku "o dowolnym formacie"? Jak chcesz sortować *.exe??--Vogel [Delphi 6 PE]
Life is just a dream, you know...
[Cowboy Bebop]
Vogel napisał:
Na jakiej zasadzie ma przebiegać sortowanie pliku "o dowolnym formacie"? Jak chcesz sortować *.exe??
>
>--
>Vogel [Delphi 6 PE]
>
>Life is just a dream, you know...
>[Cowboy Bebop]
Sortowanie pliku ma przebiegac bajt po bajcie. ( lub znaki, jak kto woli)--Ucz się ucz bo......
sgr napisał:
Sortowanie pliku ma przebiegac bajt po bajcie. ( lub znaki, jak kto woli)
A na co mi EXE posortowany bajt po bajcie? I 600MB = 600 000 000 znaków, co za problem posortować. Wystarczy mi 256 * 32 bajty pamięci do sortowania.--Vogel [Delphi 6 PE]
Life is just a dream, you know...
[Cowboy Bebop]
Moze bys sobie pocztal:
http://www.4programmers.net/view.php?id=95
--Pamietaj że święto zmarłych stanie się także twoim świętem.
werw0e napisał:
Moze bys sobie pocztal:
>http://www.4programmers.net/view.php?id=95
Quicksort jest za wolnym algorytmem do sortowania takiej ilości danych(ktoś kiedyś pisał że próbował posortować 3.000.000 elementów i trwało to ponad tydzień, to tu by trwało kilka ładnych lat), to jest algorytm klasy (N log2N), co do normalnych celów jest naprawde wystarczające. A co do twojego problemu, to z tego co rozumiem chcesz je posortować wg kodów ASCII, wtedy wystarczy zadeklarować 256 elementową tablice longint i napisać procedure która sprawdzałaby kod danego znaku i zwiększało odpowiedni element tablicy o jeden, to byłby algorytm klasy (N).--
werw0e napisał:
Moze bys sobie pocztal: http://www.4programmers.net/view.php?id=95
Jeżeli ilość różnych znaków wynosi tylko 256 to po co mam sobie zawracać głowę takim wolnym sortowaniem? Jestem w stanie zrobić to o wiele szybciej.
Kurde, lamer mnie wyprzedził :P
--
Vogel [Delphi 6 PE]
Life is just a dream, you know...
[Cowboy Bebop]
Vogel napisał:
sgr napisał:
>Sortowanie pliku ma przebiegac bajt po bajcie. ( lub znaki, jak kto woli)
>
>A na co mi EXE posortowany bajt po bajcie? I 600MB = 600 000 000 znaków, co za problem posortować. Wystarczy mi 256 * 32 bajty pamięci do sortowania.
I co dalej z tymi 256*32 bajty. A co powiesz gdy zechce sortowac plik np 5GB ?--Ucz się ucz bo......
lamer napisał:
werw0e napisał:
>Moze bys sobie pocztal:
>>http://www.4programmers.net/view.php?id=95
>
>Quicksort jest za wolnym algorytmem do sortowania takiej ilości danych(ktoś kiedyś pisał że próbował posortować 3.000.000 elementów i trwało to ponad tydzień, to tu by trwało kilka ładnych lat), to jest algorytm klasy (N log2N), co do normalnych celów jest naprawde wystarczające. A co do twojego problemu, to z tego co rozumiem chcesz je posortować wg kodów ASCII, wtedy wystarczy zadeklarować 256 elementową tablice longint i napisać procedure która sprawdzałaby kod danego znaku i zwiększało odpowiedni element tablicy o jeden, to byłby algorytm klasy (N).
Jak chcesz sortowac zawartosc pliku przy pomocy 256 elementowej tablicy? Przeciez trzeba posortowac cala zawartosc pliku, pozamieniac bajty miejscami. A co powiesz gdy plik bedzie mial np 3GB ?
--Ucz się ucz bo......
sgr napisał:
>Jak chcesz sortowac zawartosc pliku przy pomocy 256 elementowej tablicy? Przeciez trzeba posortowac cala zawartosc pliku, pozamieniac bajty miejscami. A co powiesz gdy plik bedzie mial np 3GB ?
>
sqr, do programowania myslec trzeba, a nie tylko okienka ukladac.
liczysz ile razy kazdy bajt wystepuje przy pomocy tej tablicy i wychodzi Ci np 0: 2000 razy, 1 :350 razy, 2: 5512 razy itd.
A potem tworzysz plik skladajacy sie kolejno z 2000 bajtow 0, 350 bajtow 1 itd.--Pawel {Delphi 6 Personal}
Po pierwsze: naciśnij F1