Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 18.12.2016
Сообщений: 23
1

Не получается перевести с с++ на паскаль алгоритм рекурсивной быстрой сортировки массива

21.11.2018, 21:01. Показов 1123. Ответов 6

Author24 — интернет-сервис помощи студентам
нужно перевести с с++ на паскаль алгоритм рекурсивной быстрой сортировки массива

C++
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
// Recursive C++ program to sort an array 
// using selection sort 
#include <iostream> 
using namespace std; 
  
// Return minimum index 
int minIndex(int a[], int i, int j) 
{ 
    if (i == j) 
        return i; 
  
    // Find minimum of remaining elements 
    int k = minIndex(a, i + 1, j); 
  
    // Return minimum of current and remaining. 
    return (a[i] < a[k])? i : k; 
} 
  
// Recursive selection sort. n is size of a[] and index 
// is index of starting element. 
void recurSelectionSort(int a[], int n, int index = 0) 
{ 
    // Return when starting and size are same 
    if (index == n) 
       return; 
  
    // calling minimum index function for minimum index 
    int k = minIndex(a, index, n-1); 
  
    // Swapping when index nd minimum index are not same 
    if (k != index) 
       swap(a[k], a[index]); 
  
    // Recursively calling selection sort function 
    recurSelectionSort(a, n, index + 1); 
} 
  
// Driver code 
int main() 
{ 
    int arr[] = {3, 1, 5, 2, 7, 0}; 
    int n = sizeof(arr)/sizeof(arr[0]); 
  
    // Calling function 
    recurSelectionSort(arr, n); 
  
    //printing sorted array 
    for (int i = 0; i<n ; i++) 
        cout << arr[i] << " "; 
    cout << endl; 
    return 0; 
}

Не могу перевести на паскаль.
Ниже представлен код. Выдает ошибку: Ошибка времени выполнения: StackOverflowException: Программа завершена из-за переполнения программного стека

Pascal
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
  type
  arr = array[1..10] of string;
 
function minIndex(a: arr; i: integer; j: integer): integer;
var
  k: integer;
begin
  
  if i = j then 
  begin
    minIndex := i;
  end;
  
  k := minIndex(a, i + 1, j);
  
  if a[i] < a[k] then
    minIndex := i
  else
    minIndex := k;
  
end;
 
procedure recurSelectionSort(a: arr; n: integer; index: integer);
var
  k: integer;
begin
  //index := 0;
  
  if(index = n) then 
  begin
  end
  else
  begin
    
    k := minIndex(a, index, n - 1);
    
    if (k <> index) then
      swap(a[k], a[index]); 
    
    recurSelectionSort(a, n, index + 1);   
  end;
end;
 
 
var
  f, f2: text; 
  manV, man, woman, womanV: arr; 
  min, i, j: integer;
  t_1, t, s: string;
 
 
begin
 
  // так как массив у меня брался из файла, убрал лишнее. Тут нужно описать массив
  manV[] = {8,7,2,3,6,4,1,9,2,0,1};
 
  writeln();
  recurSelectionSort(manV, 10, 0); 
 
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2018, 21:01
Ответы с готовыми решениями:

Алгоритм быстрой сортировки для двумерного массива. Получается, чем меньше столбцов, тем быстрее сортировка
Написал процедуру для сортировки двумерного массива. Для того, чтобы можно было менять число строк...

Метод быстрой рекурсивной сортировки
Дано натуральное N (1&lt;=N&lt;=10), целочисленный квадратный массив-матрица (aij), 0&lt;= i ,j &lt;N....

Разработать алгоритм быстрой сортировки одномерного массива фиксированной длины
Разработать алгоритм быстрой сортировки одномерного массива фиксированной длины N заполненного...

Провести сортировку числового массива, используя алгоритм быстрой сортировки QSort
Помогите ,пожалуйста. С#

6
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
21.11.2018, 21:06 2
Цитата Сообщение от Soulrise Посмотреть сообщение
нужно перевести с с++ на паскаль алгоритм рекурсивной быстрой сортировки массива
Да зачем переводить? Быстрая сортировка есть в разделе Паскаль и не раз. Пользуйтесь поиском.
0
0 / 0 / 0
Регистрация: 18.12.2016
Сообщений: 23
21.11.2018, 21:32  [ТС] 3
Нужна РЕКУРСИВНАЯ быстрая сортировка, которая сделана с помощью процедур и функций в самом паскале
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.11.2018, 08:12 4
Вы лучше посмотрите похожие темы внизу страницы, чем хайло драть капслоком. Метод быстрой сортировки это вообще рекурсивный метод.
0
0 / 0 / 0
Регистрация: 18.12.2016
Сообщений: 23
26.11.2018, 18:13  [ТС] 5
Ну капслоком написал потому что может быть вы НЕ УВИДЕЛИ (а не потому что хайло деру капслоком )! Еще раз повторяюсь для особо невнимательных, мне нужно перевести именно ЭТОТ код, именно на паскаль, именно с РЕКУРСИВНЫМИ ПРОЦЕДУРАМИ и ФУНКЦИЯМИ.
Мне не нужен другой код, мне нужно было перевести этот на паскаль, прежде чем умничать, хотя бы вникните в суть вопроса
0
2307 / 1419 / 515
Регистрация: 07.04.2017
Сообщений: 4,721
26.11.2018, 19:51 6
Строчка в строчку всё равно не будет. А алгоритм простой, так что скорее всего реализация всё равно будет везде на форуме одинаковая. Если бы вам небыло лень поискать - у вас бы уже всё было.
1
Status 418
Эксперт Python
4577 / 2344 / 602
Регистрация: 26.11.2017
Сообщений: 5,265
Записей в блоге: 3
26.11.2018, 20:21 7
Лучший ответ Сообщение было отмечено Soulrise как решение

Решение

А еще не плохо было бы заглянуть в папку Samples, которая устанавливается вместе с PascalABC.Net.
Там есть пример быстрой сортировки.
2
26.11.2018, 20:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2018, 20:21
Помогаю со студенческими работами здесь

При обращении к процедуре рекурсивной быстрой сортировки происходит переполнение стека
При обращении к процедуре рекурсивной быстрой сортировки происходит переполнение стека... Хотя...

Алгоритм быстрой сортировки
Добрый день. Скиньте пожалуйста готовый код программы быстрой сортировки у кого есть.

Не алгоритм быстрой сортировки
Просто как подключить эту функцию Не работаеееет #include&lt;iostream&gt; #include&lt;iomanip&gt; #include...

Алгоритм быстрой сортировки
не могу понять, где ставить &lt;, &gt;, или &gt;=, &lt;= как точно понять?? А вообще это рабочий код, можете...

Алгоритм быстрой сортировки
Разработать и реализовать программу, которая будет сортировать массив алгоритмом быстрой сортировки

Алгоритм быстрой сортировки
Написать программу, реализующую алгоритм быстрой сортировки(рекурсивный) для массива целых чисел.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru