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

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

02.01.2011, 01:35. Показов 1470. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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...

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

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

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

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

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

"Выполнить по шагам сортировку массива целых чисел методом простой сортировки", что тут имеется в ввиду?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.01.2011, 20:49

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

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

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

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

Алгоритмы сортировки массивов
Дан массив А(50). Отсортировать элементы, предшествующие первому нулевому элементу, по возрастанию...

STL алгоритмы сортировки
Здрасти. В STL есть алгоритмы sort - упорядочивает последовательность и stable_sort -...


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

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

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