Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Sortowanie po kolei wg długości
Beniooo
post
Post #1





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

Ostrzeżenie: (0%)
-----


Witam, jak posortować dane z pliku txt aby były posortowane rosnąco co do ich długości, każde słowo jest w innym wierszu
Dodam że plik ma ~36MB i 2777114 wierszy (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 23)
lobopol
post
Post #2





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


Akcja ma być wywołana jeden raz albo rzadko przez automat? Jeżeli tak to najprostsza metoda to przelecenie freadem po całym pliku i dodać je do plików zawierających konkretną długość plików. Jak to zrobimy połączyć pliki zaczynając od plików zawierających najkrótsze wyrazy. Po całej operacji usunąć pliki zawierające poszczególne długości.
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #3





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Mysle ze warto wrzucić kazdy wiersz do bazy danych
Go to the top of the page
+Quote Post
CTRL
post
Post #4





Grupa: Zarejestrowani
Postów: 133
Pomógł: 8
Dołączył: 23.09.2011
Skąd: Stromiec

Ostrzeżenie: (0%)
-----


Popieram powyższego kolegę, możesz wtedy dodać sobie dodatkową komórkę czy już wykorzystałeś wyraz.
Go to the top of the page
+Quote Post
toaspzoo
post
Post #5





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Nie ma takiej potrzeby

Otwierasz plik, dzielisz explodem na części, następnie sprawdzasz długości wyrazów i wrzucasz je do innej zmiennej tablicowej - sortujesz i wypisujesz.

Zaraz napiszę coś niecoś (IMG:style_emoticons/default/smile.gif)

Napisałem, mimo, że to nie dział gotowców. proszę (IMG:style_emoticons/default/smile.gif)

http://znajomek.unixstorm.org/sorter.php

Mam nadzieję, że wszystko jest jasne
Go to the top of the page
+Quote Post
sobol6803
post
Post #6





Grupa: Zarejestrowani
Postów: 115
Pomógł: 13
Dołączył: 19.06.2011
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


Cytat
Czwarty wyraz
Siódmy wyraz


Coś nie tak. (IMG:style_emoticons/default/smile.gif) Polskie znaki FTW! (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
toaspzoo
post
Post #7





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


?
Oba wyrazy mają taką samą długość, więc nie wiem o co chodzi (IMG:style_emoticons/default/sciana.gif)
Go to the top of the page
+Quote Post
sobol6803
post
Post #8





Grupa: Zarejestrowani
Postów: 115
Pomógł: 13
Dołączył: 19.06.2011
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


Cytat(toaspzoo @ 22.07.2012, 01:23:25 ) *
?
Oba wyrazy mają taką samą długość, więc nie wiem o co chodzi (IMG:style_emoticons/default/sciana.gif)


"wyraz" i "wyraz" może tak, ale "czwarty" i "siódmy" raczej nie. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
toaspzoo
post
Post #9





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Poprawione, polskie znaki

Ten post edytował toaspzoo 22.07.2012, 00:30:24
Go to the top of the page
+Quote Post
sobol6803
post
Post #10





Grupa: Zarejestrowani
Postów: 115
Pomógł: 13
Dołączył: 19.06.2011
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


Cytat
Najdłuższy wyraz jaki kiedykolwiek zapisano na klawiaturze komputera.
to 69 znaków (ze spacjami i kropką), a nie 71. Widać polskie znaki mają długość 2.
Go to the top of the page
+Quote Post
toaspzoo
post
Post #11





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Tak (IMG:style_emoticons/default/smile.gif)

Okej, teraz działa - plik ANSI
Go to the top of the page
+Quote Post
sobol6803
post
Post #12





Grupa: Zarejestrowani
Postów: 115
Pomógł: 13
Dołączył: 19.06.2011
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


Cytat(toaspzoo @ 22.07.2012, 01:41:36 ) *
Tak (IMG:style_emoticons/default/smile.gif)

Okej, teraz działa - plik ANSI


Pozostał tylko tag meta do ustawienia i będzie git. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
toaspzoo
post
Post #13





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Dobra, dopisze już go sobie user (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
lobopol
post
Post #14





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


toaspzoo genialne rozwiązanie tylko bardzo niewydajne wymagające sporo większej mocy niż podane przeze mnie. Nie ma to jak zrobić tablice z 2777114 wierszy i na niej puścić sortowanie i dodatkowo
  1. for($i=0;$i<count($file_lines);$i++)

Nie wiem czy można to zrobić w gorszy sposób
Go to the top of the page
+Quote Post
redeemer
post
Post #15





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Kod
cat input.txt | awk '{print length,$0}' | sort -n | cut -d " " -f 2 > output.txt
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #16





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Pragnę zauważyć, że w MySQL od 17 lat zespól wspaniałych fachowców pracuje nad tworzeniem i optymalizowaniem między innymi funkcji sortujących. Wy chcecie to przebić w 15 minut przy pomocy explode..
Łatwo zgadniąć co się lepiej sprawdzi.
Go to the top of the page
+Quote Post
toaspzoo
post
Post #17





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Tylko, załóżmy, że użytkownik będzie edytował plik bezpośrednio na maszynie, nie przez skrypt...
Ponowne wgrywanie do bazy mija się z celem
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #18





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Co rozumiesz przez "mija się z celem"?

Myśle że to w ogóle dziwna sprawa aby przetwarzać plik tekstowy o rozmiarze 36MB wiersz po wierszu łącznie blisko 3 miliony. Chciałbym wiedzieć czemu to ma służyć w szerszej perspektywie.

Strzelam że tym plikiem jest słownik skrabli (IMG:style_emoticons/default/tongue.gif)

Ten post edytował wNogachSpisz 22.07.2012, 12:24:44
Go to the top of the page
+Quote Post
Beniooo
post
Post #19





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

Ostrzeżenie: (0%)
-----


Taa, plik ze słowami, bedzie mi służył do programu na stronie (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #20





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Dlaczego zatem nie umieścić go do bazie danych?
Go to the top of the page
+Quote Post
toaspzoo
post
Post #21





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Można umieścić, pod warunkiem, że jeśli plik będzie ulegał edycji i będzie automatycznie wrzucany do sql za każdym razem.
W innym wypadku, gdy plik nie będzie w ogóle modyfikowany, można wrzucić gotowy, posortowany (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
lobopol
post
Post #22





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


toaspzoo nie zaciemniaj mu. Skoro ma to być używane w jakimś skrypcie to zdecydowanie baza. Przecież nie będzie przy każdej akcji przeszukiwał albo nim manipulował. Wgrać do bazy i kolejne wyrazy pchać już bezpośrednio do bazy. Wiadomo przecież, że na stronie nie będzie wyświetlał ani nie będzie operował na wszystkich 3 milionach wyrazów.
Go to the top of the page
+Quote Post
toaspzoo
post
Post #23





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Tego nie wiemy, może chce posortować plik i zwrócić go w formie pliku...
Go to the top of the page
+Quote Post
lobopol
post
Post #24





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


toaspzoo:
Cytat
Taa, plik ze słowami, bedzie mi służył do programu na stronie
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 10:40