Sortowanie słów (string) znajdujących się w pliku tekstowym


(Adamz8) #1

Witam może mi ktos pomuc jak zrobic takie program Sortowanie słów (typ String) znajdujących się w pliku tekstowym (w jednym wierszu jedno słowo, liczba słów dowolna) dane.txt metodą QuickSort i zapisanie posortowanego ciągu słów w pliku tekstowym wynik.txt. Ja nie mam pojecia a jest mi to potrzebne na zaliczenie z Programowania prosze o kontakt [...] i jeszcze takie cos Implementacja dynamicznej struktury danych Kolejka. Pozdrawiam Prosze o Pomoc to bardzo wazne dla mnie a dodam jeszcze ze ma po byc w free pascalu


(adpawl) #2

adamz8 Witaj na Forum.

Zanim napiszesz kolejnego posta, przeczytaj raz jeszcze zaakceptowany przez siebie Regulamin:

http://forum.dobreprogramy.pl/rules.php

Zwłaszcza punkt 2.15

Pamiętaj również, pomagamy sobie na forum a nie na kanałach prywatnych.

Jeśli chcesz pomocy, opisz konkretnie jaki masz problem - w przeciwnym wypadku temat zaliczy KOSZ.


(Szarex2 0) #3

ja bym zrobił tak:

Ogólna zasada sortowania myślę, że jest Ci znana - proponuję metodę bąbelkową. Algorytm znajdziesz tu:

http://pl.wikipedia.org/wiki/Sortowanie_bąbelkowe.

Różnica jest taka że w algorytmie porównywania liczb masz prosty warunek:

if (a[j+1] < a[j]) //porównanie sąsiądów

W przypadku porównywania alfabetycznego musisz napisać osobną funkcję realizującą sprawdzanie, jakie słowo jest wcześniej w alfabecie. finkcja miała by taką teklarację:

int alfabet(char *słowo1, char *słowo2);

w przypadku gdyby słowo1 było w alfabecie wcześniej funkcja powinna zwracać 1, w przeciwnym wypadku 0. Wówczas warunek:

if (a[j+1] < a[j]) //porównanie sąsiądów

trzeba zamienić na:

if (alfabet(slowo1,slowo2)==1) //porównanie sąsiądów

I tyle całej filozofii. Teraz musisz wymyśleć tylko wnętrze funkcji alfabet, sprawdzającej, które słowo będzie wcześniej w alfabecie. Ale z tym sobie poradzisz.