![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
bigformat |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Не могу понять,до и после сортировки одно и тоже время....
Код writeln('Kolichestvo chisel v massive:'); readln(rnd); for i:=1 to rnd do begin data[i]:=random(rnd); end; writeln('poluchenniy massiv:'); for i:=1 to rnd do begin write(data[i],' '); end; writeln; begin gettime(h,m,s,ms); quicksort(data,1,rnd); gettime(h1,m1,s1,ms1); writeln('Otsortirovanniy massiv:'); for i:=1 to rnd do write(data[i],' '); writeln('s:',h,':',m,':',s,':',ms); writeln('e:',h1,':',m1,':',s1,':',ms1); end; end. кто может сказать...еще,как вычислить теперь значение времени,за которое отсортировалось.? Сообщение отредактировано: bigformat - 4.01.2006 21:47 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Function GetTime: LongInt; |
bigformat |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
respect volvo,оч помог.
на будущее,кто будет искать...или кому лень будет Код program Kviksort; uses crt,dos; const n=20000; type list=array[1..n] of integer; var data:list; i,rnd: integer; start:word; function Gettime:LongInt; var h,m,s,ms:word; begin dos.gettime(h,m,s,ms); gettime:=ms+100*(s+60*(m+60*h)); end; procedure quicksort(var a:list; min,max: integer); procedure sort(l,r: integer); var i,j,x,y: integer; begin i:=l; j:=r; x:=a[(l+r) div 2]; repeat while a[i]<x do i:=i+1; while x<a[j] do j:=j-1; if i<=j then begin y:=a[i]; a[i]:=a[j]; a[j]:=y; i:=i+1; j:=j-1; end; until i>j; If l<j then sort(l,j); If i<r then sort(i,r); end; begin sort(min,max); end; begin randomize; writeln; writeln('Kolichestvo chisel v massive:'); readln(rnd); for i:=1 to rnd do begin data[i]:=random(rnd); end; writeln('poluchenniy massiv:'); for i:=1 to rnd do begin write(data[i],' '); end; writeln; begin gettime; start:=gettime; quicksort(data,1,rnd); writeln('Otsortirovanniy massiv:'); for i:=1 to rnd do write(data[i],' '); writeln; write('vremya sortirovki=',gettime-start,'ms'); end; end. принимайте какой есть |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 19:03 |