1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| mumu |
Сообщение
#1
|
|
Гость |
Помогите. пожалуйса решить следующую задачу:
Дан неотсортированный массив из определённого количества слов. Нужно отсортировать их по окончаниям быстрой сортировкой (т.е. не по превым. а по последним буквам). Отсортированные слова помещаются в новый массив. Как это решить? |
![]() ![]() |
| Altair |
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Код Program SortQuckString; Uses Crt; Const nn=10; {¬ Єб. Є®«-ў® н«-в®ў ў ¬ ббЁўҐ} Type atype=array[1..nn] of string; {вЁЇ ¬ ббЁў} Procedure Vec(var a:atype; var n:integer); {ўў®¤ ¬ ббЁў } var c,i:integer; begin repeat writeln('‚ўҐ¤ЁвҐ n= '); readln(n) until (n>0) and (n<=nn); For i:=1 to n do begin write('‚ўҐ¤ЁвҐ a[',i,']= '); readln(a[i]) end End; Procedure SortQuick(var x:atype; left, right:integer); {б®авЁа®ўЄ } var l,r,i:integer; a:string; Begin { ЇҐаҐўҐаҐ¬ ўбҐ бва®ЄЁ } l:=left; r:=right; a:=x[l]; repeat while (x[r]>=a) and (l<r) do r:=r-1; x[l]:=x[r]; while (x[l]<=a) and (l<r) do l:=l+1; x[r]:=x[l]; until r=l; x[l]:=a; If left<l-1 then SortQuick(x,left,l-1); If r+1<right then SortQuick(x,r+1,right) end; Procedure Print(a:atype; n:integer); Var I:integer; Begin For i:=1 to n do writeln(a[i]:6); writeln End; Procedure PEREVOROT(var a:atype; n:integer); var i,k:integer; s,ts:string; begin for i:=1 to n do begin s:=''; s:=a[i]; for k:=1 to Ord(s[0]) do begin ts:=''; ts[k]:=s[(ORD(s[0])-k+1)] end; for k:=1 to Ord(s[0]) do ts:=ts+ts[k]; a[i]:=ts; ts:=''; end; end; Var A:Atype; n:integer; Begin Clrscr; vec(a,n); Writeln('‚ и ¬ ббЁў:'); Print(a,n); {ЇҐаҐў®а зЁў Ґ¬ бва®ЄЁ ў ¬ ббЁўҐ} PEREVOROT(a,n); SortQuick(a,1,n); PEREVOROT(a,n); writeln('‚ и ®вб®авЁа®ў л© ¬ ббЁў ( зЁ п б Є®Ґзле ЎгЄў)'); Print(a,n); readkey End. Цитата А как полностью реализовать на Паскале. Мне для универа. Ни фига не понимаю... А как учиться дальше собираетесь? Цитата здесь есть объяснение и программа.. правда на си.. в общем можно поковыряться..) Если товарищ не может на пасе, то с СИ он точно не разберется! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
mumu Быстрая сортировка 12.04.2004 15:18
Altair Очень просто.
Используем быструю сортировку, тольк… 12.04.2004 15:35
fms только наверно просто s[length(s)] не пройдет.. т.… 12.04.2004 15:47
mumu А как полностью реализовать на Паскале. Мне для ун… 12.04.2004 16:13
fms http://algolist.manual.ru/sort/quick_sort.php
зде… 12.04.2004 16:48
fms мдя.. :) 12.04.2004 19:29![]() ![]() |
|
Текстовая версия | 6.11.2025 23:05 |