Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.12.2011, 21:21
zabludshiy zabludshiy вне форума
Прохожий
 
Регистрация: 28.12.2011
Сообщения: 3
Репутация: 10
По умолчанию алгоритм Шелла для 100000 элементов

Необходимо сделать сортировку массива из 100, 1000, 10000, 100000 элементов алгоритмами бинарных вставок и шелла. Бинарные вставки получилось реализовать, а вот алгоритм Шелла, по непонятным мне причинам, на 100000 перестает работать и выкидывает из проги, хотя для 100-10000 элементов отрабатывает "на ура".
Процедура алгоритма Шелла:
Код:
procedure ShellSort(var pArr :PSortArrType; var result :ResultType);
var
  i, j,m,k,s,x  :Integer;
  tmp :Integer;
  start : Real;
  h:array[1..40000] of integer;
begin
  Writeln('ShellSort: Array size = ', pArr^.len);
  start := GetMilliSeconds;
  with pArr^, result do begin
  m:=1;
  h[1]:=1;
  while h[m]<((len-1) div 3) do
    begin
      h[m+1]:=2*h[m]+1;
      m:=m+1;
    end;
  tmp:=m;
  for m:=tmp downto 1 do
    begin
      k:=h[m]; s:=-k;
      for i:=k+1 to len do
        begin
          x:=data[i]; j:=i-k;
          if s=0 then s:=-k;
          s:=s+1; data[s]:=x;
          Inc(comps);
          while x<data[j] do
            begin
              data[j+k]:=data[j]; j:=j-k;
              Inc(comps);
              Inc(moves);
            end;
          data[j+k]:=x; Inc(moves);
        end
    end
   end;
       //Inc(moves);
       //Inc(comps);
  result.time := GetMilliSeconds - start;
end; {ShellSort}
Помогите, пожалуйста, разобраться, почему программа не отрабатывает для 100000 элементов (ошибка: Exception EAccessViolation in module Laba3.exe at 00008c2a
Access violation at address 00408c2a in module 'laba3.exe'. Write of address 017c9c50)?
Программа делалась на делфи 7, в виде консольного приложения винды. Полный текст проги прилагается. Буду благодарен за любую помощь, так как самому разобраться не получается в виду малого опыта в программировании.
Вложения
Тип файла: 7z sort.7z (2.5 Кбайт, 3 просмотров)
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:04.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025