Sortowanie "od A do Z" - tekstu z ogromną ilością linii


(Djzon) #1

Otwieranie plików z dużą ilością danych - nie stanowi ZADNEGO PROBLEMU...

 

Gorzej jest gdy próbuję Sortować...

 

Sortowanie "od A do Z" - tekstu z ogromną ilością linii.


(Grzelix) #2

To jaki jest właściwie Twój problem, w którym to forum może Ci pomóc?

 

Duża ilość linii/tekstu może prowadzić od przepełnienia buforów. Możesz spróbować skorzystać z innych edytorów lub napisać własny mikro programik która wykonana zadanie. 

 

Myślę że osoba z minimalnym doświadczeniem programistycznym może napisać program według algorytmu:

Przeczytaj linię z pliku A

Czytaj linia po linii plik A_Posortowane aż znajdziesz miejsce dla linii z pliku A.

Przepisz pozostałe linie w pliku A_Posortowane.

Idź do kolejnej linii w pliku A i powtórz czynnośći powyżej.

 

Jest mało wydajne sortowanie ze względu na złożoność czasową, ale nie zawodne ze względu na potrzebną ilość pamięci.


(Djzon) #3

grzelix - Myślę, że PowerShell - jest odpowiedni, tylko muszę poszukać odpowiedni scrypt.

Pisanie programów nie jest łatwą sprawą trzeba znać złożone algorytmy , które pracują na dużej ilości danych i nie ma problemów z dużym użyciem pamięci, przepełnieniem stosu itp.


(Drobok) #4

Powyższy algorytm posiada najmniejsze zużycie pamięci ram, więc mógłbyś z niego skorzystać :stuck_out_tongue:


(Djzon) #5

drobok - udało się!

 

Kilka ustawień w programie i koniecznie uruchomienie  z prawami administratora. Aby uniknąć błędów z dostępem.

 

 

-Mini-superkomputer (Mój PC)

  • 31 milionów linii z długimi nazwami

 

Czas pracy: 5-10 minut i gotowe :wink:

 

Temat rozwiązany!

Na innym forum mówili, że to niemożliwe, że przesadzam z taką dużą ilością danych, ale jak bardzo się mylili!

 

 

Naprawdę: Proszę: Oto screen!

nie zwracać uwagę na 99%… ponieważ w 100% znika okienko

 


(Drobok) #6

1,5GB to wcale nie jest dużo, mógłbyś to nawet w ram posortować :stuck_out_tongue:


(Djzon) #7

drobok - Proszę to dokładnie zrozumieć, że rozmiar pliku nie ma tutaj większego znaczenia a ilość linii.

 

Ps. Chętnie bym zobaczył czy by Tobie się to udało - dowolnym sposobem i ile by to potrwało (o ile faktycznie się udało) :smiley:


(Drobok) #8

musiałbyś wrzucić gdzieś twój plik, podlinkować jakąś paczkę danych, np na mojego onedrive (PW) :slight_smile:


(Djzon) #9

drobok - nie bardzo mi się chcę wrzucać plik ze względu

a) bardzo niski upload
b) dużo zajmuje plik
c) prywatne informacje zawarte w tekscie

ale możesz utworzyć plik tekstowy dla testów

 

a)30+ milionów linii

b) każda linia nie przekracza 259 znaków (średnio połowa tego limitu)

 

Dla zabawy policzyłem sobie, że to będzie około 7 miliardów znaków w tekscie :wink:

Chyba, że to nie tak się liczy?

 

259x30000000= :shock:


(Drobok) #10

Przy tak dużym pliku sam układ znaków w linii / samych linii może spowodować skrócenie czasu sortowania o dość znaczny %

Jeśli chcesz porównywać algorytmy itd musisz mieć ten sam zestaw danych


(Djzon) #11

Spróbuj otworzyć tekst np. 10 GB


(wojski) #12

@djzon może żeby ten post na forum zyskał na wartości umieścisz chociaż skrypt, ktory rozwiązal twój problem (albo jego istatną część) bo jak ktoś za jakiś czas odkopie ten wątek w poszukiwaniach to nic się z niego nie dowie, poaz tym, że ci sie udało :slight_smile:


(Djzon) #13

Java i do dzieła…