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

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

Войти
Регистрация
Восстановить пароль
 
airesjke
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 20
#1

Сортировка - C++

12.09.2012, 08:29. Просмотров 453. Ответов 2
Метки нет (Все метки)

A. Дан одномерный массив из n (n≤104) элементов a1,a2,…,an.( |ai|≤2×109). Сортировать по возрастанию методом обмена (пузырька).
B. Дан одномерный массив из n (n≤106) элементов a1,a2,…,an.(|ai|≤2×109). Сортировать по возрастанию методом быстрой сортировки из библиотеки <stdlib.h>.

Алгоритм сортировки оформить в виде ФУНКЦИИ!

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
#include <iostream>
using namespace std;
int main()
{
int i, j, N,A[N], c;
//здесь надо ввести N и массив A:
cin>>N;
 
//для проверки быстродействия используем инициализацию:
// for ( i = 0; i < N; i ++ ) A[i]=N-i;
 
 //для отправки на проверку:
//  freopen("input.txt","r",stdin);  freopen("output.txt","w",stdout);
// for ( i = 0; i < N; i ++ ) cin>>A[i];
 
 
for ( i = 0; i < N-1; i ++ ) // достаточно поставить N-1 элементов
for ( j = N-2; j >= i; j -- ) // идем с конца массива в начало
if ( A[j] > A[j+1] ) // если они стоят неправильно, ...
{
    c = A[j]; A[j] = A[j+1]; // переставить A[j] и A[j+1]
   A[j+1] = c;
} 
for ( i = 0; i < N; i ++ ) cout<<A[i]<<” “;
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2012, 08:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка (C++):

Сортировка Шелла. Написал программу, не могу понять, почему сортировка не выполняется - C++
Программа создает динамический массив с рандомным заполнением. Дальше выбор сортировок, пузырьком или сортировка Шелла. Вот она то и не...

Сортировка слиянием. В каком куске кода происходит сортировка и каким именно образом? - C++
Помогите, пожалуйста, разобраться. Подскажите в каком куске кода происходит сортировка и каким именно образом? #include &lt;iostream&gt; ...

Быстрая сортировка (сортировка Хоара) для связных списков - C++
есть у кого готовый алгоритм? или подскажите как реализовать

Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива - C++
Мне нужно отсортировать фрагмент массива, расположенный между первым и последним отрицательным элементом. Немогу понять как устоновить...

Сортировка Шелла и пирамидальная сортировка для символов - C++
Здраствуйте, можете пожалуйста привести пример сортировок шелла и пиромидальной сортировки для символов, а то ничего не могу ...

Быстрая сортировка (сортировка методом Хоара) - C++
Ввести массив x1,x2,...,x20 в диапазоне . Требуется расположить отрицательные элементы в порядке убывания. Вывести массивы до и после...

2
cmath
Модератор
2444 / 1685 / 134
Регистрация: 11.08.2012
Сообщений: 3,286
Завершенные тесты: 6
13.09.2012, 07:12 #2
Пример решения (запихнул в функции все, что смог:))
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
#include <iostream>
using namespace std;
 
void NewArray(int *Array, int SIZE)
{
   Array = new int[SIZE];
   int *poi;
   poi = Array;
   for(int i = 0; i < SIZE; i++)
   {
        cout << "A[" << i << "] = ";
        cin >> *poi;
        cout << endl;
        poi++;
   }
}
 
void DeleteArray(int *Array)
{
   delete []Array;
}
 
void Output(int *Array, int SIZE)
{
   for(int i = 0; i < SIZE; i++)
   {
        cout << "A[" << i << "] = " << *Array << " ";
        Array++;
   }
   cout << endl; 
}
 
void Sortirovka(int *Array, int SIZE)
{
   int *poi1, *poi2;
   int c;
   for(int i = 0; i < SIZE - 1; i++)
   {
        poi1 = Array;
        poi2 = ++poi1
        for(int j = 0; j < SIZE - 1; j++)
        {
             if(*poi1 > *poi2)
             {
                c = *poi; *poi1 = *poi2; *poi2 = c;
             }
             poi1++;
             poi2++;
        }
   }
}
 
int main()
{
   setlocale(LC_ALL, "Russian");
   int *Array, SIZE;
   cout << "Введите размер массива:";
   cin >> SIZE;
   cout << "Введите элементы массива:" << endl;
   NewArray(Array, SIZE);
   cout << "Ваш массив:";
   Output(Array, SIZE);
   Sortirovka(Array, SIZE);
   cout << "Массив после сортировки:";
   Output(Array, SIZE);
   system("pause");
   return 0;
}
0
dortonyan
57 / 1 / 1
Регистрация: 17.08.2012
Сообщений: 31
20.09.2012, 19:05 #3
Ребят, подскажите плиз: где почитать по методам внешней сортировки структур в файле, а точнее по работе с файлами?
Т.е. интересует не сам алгоритм сортировки, а алгоритм форматирования, чтения-записи (перестановки) структур в файле при сортировке (желательно че-нить попримитивнее, без крутых библиотечных ф-ий).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2012, 19:05
Привет! Вот еще темы с ответами:

Сортировка вектора по полю(Сортировка вставками) - C++
Здравствуйте! Нужно написать сортировку вектора по полю weight класса tomato. Вот класс: #pragma once #include &lt;iostream&gt; ...

C/C++ FAQ :: Быстрая сортировка (сортировка Хоара) - C++
Вопрос, скорее академический, по мотивам реализации. Вот в faq приведена реализация этого метода сортировки на C++. В коде есть следующий...

2 сортировки: пирамидальная сортировка и сортировка слиянием - C++
Реализовать два улучшенных алгоритма сортировки. Для каждого алгоритма вычислить показатель качества сортировки (количество операций, т.е....

Шейкерная сортировка + сортировка слиянием - C++
вот часть когда,которая выполняет шейкерную сортировку : для символьного и целочисленого массива . // ConsoleApplication15.cpp:...


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

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

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