Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
nikneg
0 / 0 / 2
Регистрация: 28.02.2017
Сообщений: 3
#1

QuickSort не работает - Delphi

17.03.2017, 23:28. Просмотров 152. Ответов 2

Нужно проверить не отсортированный массив на недостающие число и вывести его индекс. Я сортирую квик сортом и потом проверяю, но программа не работает,а вылетает, что делать?


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
program Admin;
  type tmas=array [1..100000]of longword;
procedure vvod (var masiv:tmas; var n:longword);
  var i:longword; fin:text;
begin
  assign(fin,'input.txt'); reset(fin);
  read(fin,n);
  for i:=1 to n do
      read(fin,masiv[i]);
  close(fin);
end;
procedure swap(var a, b: longword);
var
  temp: longword;
begin
  temp := a;
  a := b;
  b := temp;
end;
procedure Sort(var masiv:tmas; l,r: longword);
var
  m,x,i,j: longword;
begin
  l:=1;
  m := ((l + r) div 2);
  i := l;
  j := r;
  x := masiv[m];
  while i <= j do
  begin
    while masiv[i] < x do
      inc(i);
    while masiv[j] > x do
      dec(j);
    if i <= j then begin
      swap(masiv[i], masiv[j]);
      inc(i);
      dec(j);
    end;
  end;
  if l < j then
    Sort(masiv, l, j);
  if r > i then
    Sort(masiv, i, r);
end;
function check (var masiv:tmas; n:longword):longWord;
var i:longword;
begin
    for i:=1 to n do
      begin
      if masiv[i]+1<>masiv[i+1]
      then check:=i;
      end;
end;
  var fout:text;  r,n,res:longword; masiv:tmas;
begin
  r:=1;
  assign(fout,'output.txt'); rewrite(fout);
  vvod(masiv,n);
  sort(masiv,r,n);
  res:=check(masiv,n);
  write(fout,res);
  close(fout);
end.
0
Миниатюры
QuickSort не работает  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2017, 23:28
Я подобрал для вас темы с готовыми решениями и ответами на вопрос QuickSort не работает (Delphi):

Сортировка QuickSort
Помогите, у меня в задании надо сделать сортировку массивов 3мя разными...

Не работает QuickSort
Скажем так написал быструю сортировку, вроде по правилам, но как не странно ...

Не работает swap элементов через xor в рекурсии. Почему? (Procedure QuickSort)
type Arr = array of integer; procedure QuickSort(var a: Arr; Lo,Hi:...

QuickSort
Дан массив целых чисел. Отсортируйте его в порядке неубывания спомощью методы...

QuickSort
Здравствуйте! Вопрос такой: дико деградирует быстрая сортировка уже от миллиона...

QuickSort
Помогите с алгоритмом и кодом на C++ быстрой сортировки! Наработок вообще нет!

2
Matan!
Delphi/Java/DB Dev + Math
395 / 264 / 112
Регистрация: 31.05.2013
Сообщений: 2,161
Записей в блоге: 4
Завершенные тесты: 2
17.03.2017, 23:44 #2
Файл создал? Где он находится?

Добавлено через 1 минуту
И потом. Чему равно r? Что-то я нигде этого не вижу.
1
nikneg
0 / 0 / 2
Регистрация: 28.02.2017
Сообщений: 3
18.03.2017, 00:01  [ТС] #3
Файлы создал, они в папке с проектом, р=1 в 57 строчке. дело не в этом

Добавлено через 3 минуты
Файл создал, программа с закоментированным квик сортом работает, р я присвоил значение 1 в 57 строке.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2017, 00:01
Привет! Вот еще темы с решениями:

QuickSort на C++11
Написал быструю сортировку, добился работоспособности и сразу захотелось...

Quicksort
Дан массив, необходимо отсортировать его в порядке возрастания. Использую...

stdlib.h - quicksort
Идея такова: отсортировать массив A очень быстрым методом Хоара. Пробовал в...

Реализация QuickSort
Ребят, есть нужда отсортировать массив структур по полю name (по алфавиту)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru