6 / 6 / 1
Регистрация: 05.06.2016
Сообщений: 61
1

Сортировка пузырьком

21.07.2016, 22:10. Показов 486. Ответов 5
Метки нет (Все метки)

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
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
 
void Sort(int *, int);
const int n = 8;
int  array [ n ];
int i = 0;
 
int main()
{
    for (int i = 0 ; i < n ; i++)
    {
         array [ i ] = rand() % 9;
        cout<<"Array values"<<array [ i ] <<endl;
    }
    cout<<"\n";
 
    Sort(array , n);
        for (i = 0 ; i < n ; i++)
        {
            cout<< "Sorted array" <<array [ i ] << endl;
        }
    return 0;
}
 
void Sort(int* array, int n)
{
    int temp = 0;
    for (int i = 0 ; i < (n - 1) ; i++)
        if (array [ i ]>array [ i + 1 ])
        {
            temp = array [ i ];
            array [ i ] = array [i + 1];
            array [ i + 1 ] = temp;
        }
}
Пробовал написать сортировку пузырьком, код компилируется, но вот результат совсем не радует....

Array values5
Array values8
Array values7
Array values4
Array values8
Array values1
Array values3
Array values0

Sorted array5
Sorted array7
Sorted array4
Sorted array8
Sorted array1
Sorted array3
Sorted array0
Sorted array8
Press any key to continue . . .
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.07.2016, 22:10
Ответы с готовыми решениями:

Сортировка пузырьком
ребята, такая проблема: нужно подсчитать колличество сравнений и перестановок в сортировки...

Сортировка Пузырьком
Здравствуйте! Пытался выполнить задание: Сортировка Пузырьком - один из простейших способов...

Сортировка пузырьком.
Приветствую, тех кто заглянул в топик. Помогите, пожалуйста, решить задачу на C пузырьковой...

Сортировка пузырьком
Здравствуйте! Решаю задачу:пользователь вводит слова через пробел,я должен вывести их в алфавитном...

5
4 / 3 / 3
Регистрация: 17.07.2016
Сообщений: 17
21.07.2016, 22:22 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
#include <iostream>
using namespace std;
 
int main()
{
    // Считываем размер массива,
    // который необходимо отсортировать
    int size;
    cin >> size;
 
    // Динамически выделяем память под
    // хранение массива размера size
    int *a = new int[size];
   
    // Считываем массив
    for (int i = 0; i < size; i++)
    {
        cin >> a[i];
    }
 
    // Внешний цикл алгоритма совершает
    // ровно size итераций
    for (int i = 0; i < size; i++)
    {
        // Массив просматривается с конца до
        // позиции i и "легкие элементы всплывают"
        for (int j = size - 1; j > i; j--)
        {
            // Если соседние элементы расположены
            // в неправильном порядке, то меняем
            // их местами
            if (a[j] < a[j - 1])
            {
                swap (a[j], a[j - 1]);
            }
        }
    }
 
    // Выводим отсортированный массив
    for (int i = 0; i < size; i++)
    {
        cout << a[i] << ' ';
    }
 
    return 0;
}
0
6 / 6 / 1
Регистрация: 05.06.2016
Сообщений: 61
21.07.2016, 22:35  [ТС] 3
Цитата Сообщение от Antony Coder Посмотреть сообщение
многим более простой код)
При динамическом выделении памяти вроде нужно было ее потом освобождать - delete ?
0
4 / 3 / 3
Регистрация: 17.07.2016
Сообщений: 17
21.07.2016, 22:40 4
конкретно для твоего случая
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
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
 
void Sort(int *, int);
const int n = 8;
int  array[n];
int i = 0;
 
int main()
{
    for (int i = 0; i < n; i++)
    {
        array[i] = rand() % 9;
        cout << "Array values" << array[i] << endl;
    }
    cout << "\n";
 
    Sort(array, n);
    for (i = 0; i < n; i++)
    {
        cout << "Sorted array" << array[i] << endl;
    }
    return 0;
}
 
void Sort(int* array, int n)
{
    int j, temp = 0;
    for (int i = 0; i < (n); i++)
    {
        for (int j = n - 1; j > i; j--){
            if (array[j - 1] > array[j])
            {
                temp = array[j - 1];
                array[j - 1] = array[j];
                array[j] = temp;
            }
        }
    }
}
Добавлено через 1 минуту
в твоем случае внутренний цикл для обхода надо было добавить
0
6 / 6 / 1
Регистрация: 05.06.2016
Сообщений: 61
21.07.2016, 22:55  [ТС] 5
А теперь если на затруднит на пальца и по буквам. Зачем нужен внутренний цикл? для обхода чего?
0
4 / 3 / 3
Регистрация: 17.07.2016
Сообщений: 17
22.07.2016, 00:38 6
шаг сортировки состоит в проходе снизу вверх по массиву. По пути просматриваются пары соседних элементов. Если элементы некоторой пары находятся в неправильном порядке, то меняем их местами.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.07.2016, 00:38

Сортировка пузырьком
Нужно осортировать методом пузырька по 4 столбцу (который я как смог добавил криво косо так как в...

сортировка пузырьком
Вечер добрый! Задача проста: отсортировать сначала по зп, если &lt; 400, то в 1ый список, а если...

Сортировка пузырьком
Правильно ли организую ввод размера массива через клавиатуру?Если неправильно-то как? #include...

Сортировка пузырьком
Подскажите как мне показать(вывести) пары чисел расположенные наиболее рядом? #include...


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

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

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