IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> сортировка строк, проверьте, плиз!:(
сообщение
Сообщение #1


Гость






я вот такую прогу написала, кот должна выдавать в алф. порядке слова из файла. она выдает последнее слово н раз. что тут не так?
можно ли использовать метод пузырька для сортировки массива из строк?
вот у меня такая прога:
Код
program blah;
uses crt;
type
r=1..500;
mas=array[r] of string[10];
var  i,k,l:integer;
    m,n:r;
    sp:mas;
    slovar:text;
    p,tmp:string;
begin
clrscr;
assign(slovar,'slovar.txt');
reset(slovar);
n:=1;
while not eof(slovar) do
begin readln(slovar,p);
n:=n+1;
{for i:=1 to length(p) do
begin }
for m:=1 to n-1
do begin sp[m]:=p;
{end;}
end;
writeln(m,'  ',sp[m]);
for m:=n-1 downto 2 do
for l:=1 to m-1 do
if sp[l]>sp[l+1] then
begin
tmp:=sp[l];
sp[l]:=sp[l+1];
sp[l+1]:=tmp;
end;
end;
writeln('v alfavitnom poryadke:');
for l:=1 to n-1 do
writeln(l,'   ',sp[l]);
writeln(n-1);
close(slovar);
readkey;
writeln('Programma zavershila rabotu.');
end.



она выдаёт последнее слово в файле, приравнивая его всем эл-там массива. почему так?
в файле словарь.тхт даны строки типа
Код
HELLO
MY
NAME
IS
KATE
на выходе:
1   HELLO
2   MY
3   NAME
4   IS
5   KATE
'v alfavitnom poryadke:
1   KATE
2   KATE
3   KATE
4   KATE
5   KATE
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Тема конечно старая, но мало ли еще кто догадается отсортировать строки пузырем. =)

Конечно, теоретически отсортировать можно. Но представьте реальную программу, в которой будет использоваться пузырь! Мало того, что он малопригоден для сортировки обычных чисел - квадратичная сложность обрекает ваш компьютер на глубокие раздумья уже при количестве элементов 10000.

А для еще большего количества строк непригоден даже qsort (быстрая сортировка, сложность n*log(n)). У меня сейчас стоит подобная задача - отсортировать 100000 строк длиной 15 за быстрое время. Сейчас работаю в направлении поразрядной сортировки (RadixSort, по-идее работает за линейное время).

Так что не вздумайте сортировать строки пузырем!

alext
 К началу страницы 
+ Ответить 

Сообщений в этой теме


Closed Topic Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 7.09.2025 1:51
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name