Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
-5 / 2 / 0
Регистрация: 29.01.2019
Сообщений: 278

Сравнить количество перестановок при сортировке одного и того же массива разными методами

25.04.2019, 17:09. Показов 5361. Ответов 9

Студворк — интернет-сервис помощи студентам
Напишите программу, которая сравнивает количество перестановок при сортировке одного и того же массива разными методами. Проведите эксперименты для возрастающей последовательности (уже отсортированной), убывающей (отсортированной в обратном порядке) и случайной.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.04.2019, 17:09
Ответы с готовыми решениями:

Сравнить количество перестановок при сортировке массива методами Шелла и челночным
Дан массив из 10000 элементов. Нужно провести сортировку шелла по убыванию, а так же челночную сортировку, а затем сравнить эти методы по...

Количество перестановок при сортировке массива
Как вывести число количества перестановок после сортировки массива, допустим выбору?

Подсчитать Количество перестановок при сортировке массива по возрастанию
Привет всем. Мне нужно написать программу, которая подсчитывает минимальное количество перестановок при сортировке массива по возрастанию....

9
-5 / 2 / 0
Регистрация: 29.01.2019
Сообщений: 278
25.04.2019, 22:13  [ТС]
Напишите программу, которая сравнивает количество перестановок при сортировке одного и того же массива разными методами.
0
-5 / 2 / 0
Регистрация: 29.01.2019
Сообщений: 278
26.04.2019, 12:37  [ТС]
ОШибка - a = new int[1000];
Как исправить?


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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
 
void BubbleSort(int k, int *x,int &n)
{
    int i, j, buf;
    for (i = k - 1; i>0; i--)
        for (j = 0; j<i; j++)
            if (x[j]>x[j + 1])
            {
        n++;
        buf = x[j];
        x[j] = x[j + 1];
        x[j + 1] = buf;
            }
}
void SelectionSort(int k, int *x, int &n)
{
    int i, j, min, temp;
    for (i = 0; i<k - 1; i++)
    {
        min = i; //устанавливаем начальное значение мин. индекса 
        for (j = i + 1; j<k; j++) //ищем мин. индекс элемента 
 
        {
            if (x[j]<x[min])
                min = j; //меняем значения местами 
        }
        n++;
        temp = x[i];
        x[i] = x[min];
        x[min] = temp;
    }
}
void qsort(int *a, int l, int r, int &n)
{
    n++;
    int w, x, i, j;
    i = l;
    j = r;
    x = a[(l + r) / 2];
    while (i <= j)
    {
        while (a[i]<x) i++;
        while (x<a[j]) j--;
        if (i <= j)
        {
            w = a[i]; a[i] = a[j]; a[j] = w;
            i++; j--;
        }
    }
    if (l<j) qsort(a, l, j, n);
    if (i<r) qsort(a, i, r, n);
}
 
int main(void)
{
    a = new int[1000];
    for (int i = 0; i < 1000; i++)
        a[i] = rand() % 200;
    int n = 0;
    BubbleSort(1000, a, n);
    cout << "Buble sort " << n << endl;
    n = 0;
    SelectionSort(1000, a, n);
    cout << "SelectionSort " << n << endl;
    n = 0;
    qsort(a,0, 1000, n);
    cout << "qsort " << n << endl;
    system("pause");
    delete[]a;
    return 0;
}
0
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
26.04.2019, 12:39
Kadet12,
C++
1
int *a = new int[1000];
1
-5 / 2 / 0
Регистрация: 29.01.2019
Сообщений: 278
26.04.2019, 12:50  [ТС]
a[i] = rand() % 200;
Теперь тут ошибка
0
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
26.04.2019, 13:22
Kadet12, а какая именно ошибка?
0
-5 / 2 / 0
Регистрация: 29.01.2019
Сообщений: 278
26.04.2019, 13:27  [ТС]
[Error] 'rand' was not declared in this scope
0
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
26.04.2019, 14:01
Лучший ответ Сообщение было отмечено Kadet12 как решение

Решение

Kadet12,
C++
1
#include <cstdlib>
0
-5 / 2 / 0
Регистрация: 29.01.2019
Сообщений: 278
26.04.2019, 14:12  [ТС]


У вас так же выходит?
0
-5 / 2 / 0
Регистрация: 29.01.2019
Сообщений: 278
29.04.2019, 14:21  [ТС]
Просьба перевести на С++:
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
type mas=array of integer;
procedure massiv(var a:mas;n,k:integer);
var i:integer;
begin
setlength(a,n);
writeln('Исходный массив номер ',k);
for i:=0 to n-1 do
begin
a[i]:=random(1000);
write(a[i]:4)
end;
writeln;
end;
procedure sort_bouble(var a:mas;n:int
eger;var p:integer) ;
var i,k,x:integer;
begin
writeln('Сортировка пузырьком');
p:=0;
for k:=0 to n-2 do
for i:=0 to n-2 do
if a[i]>a[i+1] then
begin
inc(p);
x:=a[i];
a[i]:=a[i+1];
a[i+1]:=x
end;
for i:=0 to n-1 do
write(a[i]:4);
writeln;
writeln('Количество перестановок=',p)
end;
procedure sort_vyb(var a:mas;n:integer;var p:integer);
var i,j,k,x:integer;
begin
writeln('Сортировка выбором');
for i:=0 to n-2 do
begin
k:=i;
for j:=i+1 to n-1 do
if a[j]<a[k] then k:=j;
inc(p);
x:=a[i];
a[i]:=a[k];
a[k]:=x;
end;
for i:=0 to n-1 do
write(a[i]:4);
writeln;
writeln('Количество перестановок=',p)
end;
 
var i,p1,p2,pb,pv:integer;
a,a1:mas;
begin
randomize;
pb:=0;
pv:=0;
for i:=1 to 5 do
begin
massiv(a,1000,i);
a1:=a;
writeln('Нажмите Enter для продолжения');
readln;
sort_bouble(a,1000,p1);
inc(pb,p1);
writeln('Нажмите Enter для продолжения');
readln;
sort_vyb(a1,1000,p2);
inc(pv,p2);
writeln('Нажмите Enter для продолжения');
readln
end;
pb:=round(pb/5);
pv:=round(pv/5);
writeln('Среднее число перестановок:');
writeln('- пузырек=',pb);
writeln('- выбор=',pv);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2019, 14:21
Помогаю со студенческими работами здесь

подсчитать минимальное количество перестановок при сортировке массива по возрастанию
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; #include &lt;cstdlib&gt; using namespace std; void BubbleSort(int k, int...

Количество перестановок при сортировке
Помогите решить задачу. В этой задаче вам необходимо проанализировать некоторый алгоритм сортировки. Этот алгоритм сортирует...

Как определить количество сравнений и перестановок в быстрой сортировке массива
Пробовал сделать счётчики, но они выводили кол-ва для сортировке всех подмассивов, а как вывести кол-во всех перестановок и сравнений за...

Как подсчитать произведенное количество перестановок при быстрой сортировке?
имею такой код #include &lt;iostream&gt; using namespace std; void qSort (int a,int nStart, int nEnd) { int L,R,c,X; if...

Количество сравнений и обменов при сортировке матрицы разными способами
Необходимо создать однородную таблицу. Затем применить три метода сортировки: Бинарным включением, простым обменом, быстрая сортировка. по...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru