Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 02.01.2011
Сообщений: 7

алгоритмы сортировки

02.01.2011, 01:35. Показов 1830. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно выполнить сортировку массива целых чисел 3 методами: простыми включениями, простым выбором, простым обменом
подскажите пожалуйста как исправить программу чтобы был только 1 массив и заново не инициализировать его перед каждой сортировкой

вот исходный текст выполнен с использованием Borland C++ Builder 6.0


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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
void insertSort( int* mas, const int n);
void selectSort( int* mas, const int n);
void bubleSort ( int* mas, const int n);
//---------------------------------------------------------------------------
 
#pragma argsused
int main()
{
const int n=15;// количество элементов массива
int mass[n] = {8, 23, 80, 71, 76, 28, 89, 5, 18, 68, 91, 50, 53, 2, 17};
int i, buff;
for (i=0; i<n; i++) cout <<mass[i]<<' ';
cout<<'\n';
//сортировка выбором
selectSort (mass,n);
//for (i=0; i<n-1; i++) { //n-1 ищем наименьший элемент
//принимаем за наименьший первый из рассматриваемых элементов
//int imin = i;
//поиск номера минимального элемента из неупорядоченный
//for (int j=i+1;j<n;j++)
//если нашли меньший элемент запоминаем его номер
//if (mass[j]<mass[imin])imin=j;
//buff=mass[i]; //обмен элементов
//mass[i]=mass[imin]; //с номерами
//mass[imin]=buff; //i и imin
//}
//вывод упорядоченного массива
for (i=0;i<n;i++)cout <<mass[i]<<' ';
cout<<'\n';
//сортировка вставками
int mass1[n]= {8, 23, 80, 71, 76, 28, 89, 5, 18, 68, 91, 50, 53, 2, 17};
insertSort(mass1,n) ;
int j, k;
//for (i=0; i<n; i++)
//{ buff=mass1[i];
//for (j=i-1; j>=0 && buff<mass1[j]; j--)
//mass1 [j +1]= mass1 [ j ]; //сдвиг на одну позицию
//mass1 [j+1]=buff; }
//вывод упорядоченного массива
for (i=0;i<n;i++)cout <<mass1[i]<<' ';
cout<<'\n';
//сортировка обменом
int mass2[n]= {8, 23, 80, 71, 76, 28, 89, 5, 18, 68, 91, 50, 53, 2, 17};
bubleSort(mass2,n);
//for (k=0;k<n-1;k++){
//for (i=0;i<n-1;i++) if(mass2[i]>mass2[i+1]) {buff=mass2[i];mass2[i]=mass2[i+1];mass2[i+1]=buff;} }
//вывод упорядоченного массива
for (i=0;i<n;i++)cout <<mass2[i]<<' ';
cout<<'\n';
char out;
while (!cin.get(out));
return 0;
}
//--------------------------
 
//сортировка вставками
void insertSort( int* mas,const int n) {
int i,j,value;
for(i = 1; i < n; i++) {
value = mas[i];
for (j = i-1; (j >= 0) && (mas[j] > value); j--){
mas[j+1] = mas[j];
}
mas[j+1] = value;
}
}
//сортировка выбором
void selectSort (int* mas,const int n){
int i,j,buff;
for (i=0; i<n-1; i++) { //n-1 ищем наименьший элемент
//принимаем за наименьший первый из рассматриваемых элементов
int imin = i;
//поиск номера минимального элемента из неупорядоченный
for (int j=i+1;j<n;j++)
//если нашли меньший элемент запоминаем его номер
if (mas[j]<mas[imin])imin=j;
buff=mas[i]; //обмен элементов
mas[i]=mas[imin]; //с номерами
mas[imin]=buff; //i и imin
}
}
//сортировка обменом
void bubleSort (int* mas,const int n){
int k,i,buff;
for (k=0;k<n-1;k++){
for (i=0;i<n-1;i++) if(mas[i]>mas[i+1]) {buff=mas[i];mas[i]=mas[i+1];mas[i+1]=buff;} }
}
 Комментарий модератора 
Используйте теги форматирования кода.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.01.2011, 01:35
Ответы с готовыми решениями:

Написать две функции сортировки массива целых чисел, реализующих заданные алгоритмы сортировки – один из класса квадрат
#include &lt;stdio.h&gt; #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; int main() { int sort; ...

Алгоритмы Сортировки
помогите пожалуйста выполнить вот такое задание... завтра утром нужно сдать.... 1) Реализовать алгоритмы Insertion-Sort(сортировка...

Алгоритмы внешней сортировки
Добрый день. Интересуют такие алгоритмы сортировки, как многофазное слияние, каскадное слияние и т. д., а также методы формирования...

6
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
02.01.2011, 02:11
создать динамически с рандомными значениями, после сортировки удалить, оформить ввиде процедуры
0
1 / 1 / 0
Регистрация: 02.01.2011
Сообщений: 7
02.01.2011, 02:36  [ТС]
мне рандомные значения не пойдут

целочисленный одномерный массив уже определен в задаче, нужно только выполнить по шагам его сортировку разными методами
0
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
02.01.2011, 03:55
создай второй массив и туда записывай отсортированные значения
1
1 / 1 / 0
Регистрация: 02.01.2011
Сообщений: 7
02.01.2011, 11:01  [ТС]
верно спасибо
только не понимаю как это сделать, я же передаю массив в качестве аргумента в процедуру, при выполнение процедуры он меняется-сортируется
0
 Аватар для Минич
67 / 67 / 7
Регистрация: 26.11.2010
Сообщений: 123
02.01.2011, 21:26
При передаче массива функции в виде аргумента передается адрес на первый элемент массива (ссылка), т.е. массив не копируется, а обрабатывается исходный массив.
0
1 / 1 / 0
Регистрация: 02.01.2011
Сообщений: 7
05.01.2011, 20:49  [ТС]
еще эффективность нужно оценить кажется
что считать количество обменов( перестановок) или количество циклов или количество сравнений?

"Выполнить по шагам сортировку массива целых чисел методом простой сортировки", что тут имеется в ввиду?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.01.2011, 20:49
Помогаю со студенческими работами здесь

алгоритмы сортировки массивов
помогите пожалуйста решить задачу на с++... Если у массива А(50) есть элемент, равный квадрату последнего элемента, то все элементы,...

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

Основные алгоритмы сортировки
Пом-гите решить, заранее благодарен Билет 3 1 Сортировка. Основные алгоритмы сортировки. 2 Решить задачу: представлен фрагмент...

векторы и алгоритмы сортировки
У меня есть алгоритм сортировки In-place merge sort, для обычных массивов любого типа данных. #include &lt;iostream&gt; #include...

Алгоритмы сортировки и поиска
Помогите, пожалуйста!! Нужно выполнить сортировку целочисленного массива (поиск в массиве) из n элементов. Алгоритм сортировки (поиска)...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru