С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Skon
1 / 1 / 0
Регистрация: 02.01.2011
Сообщений: 7
#1

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

02.01.2011, 01:35. Просмотров 1227. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2011, 01:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос алгоритмы сортировки (C++):

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

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

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

Алгоритмы сортировки. Подсчетом - C++
#include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; using namespace std; const int n = 10,m = 1; int a = {0}; ...

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

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

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

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

"Выполнить по шагам сортировку массива целых чисел методом простой сортировки", что тут имеется в ввиду?
0
05.01.2011, 20:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2011, 20:49
Привет! Вот еще темы с ответами:

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

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

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

типовые алгоритмы сортировки - C++
типовые алгоритмы сортировки как они выглядят ?


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

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

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