Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
#1

Сортировка с пузырём - C++

24.02.2012, 04:48. Просмотров 445. Ответов 3
Метки нет (Все метки)

Здравствуйте. Начал изучать сортировки, хотел написать свой "пузырек", а оно чего-то работать не хочет, зацикливается. Поглядите, пожалуйста:

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
#include <iostream>
using namespace std;
 
void printArray( int[], int );
void bubbleSort( int[], int );
void swap( int, int );
 
int main()
{
    const int size = 4;
    int array[ size ] = { 9, 8, 7, 6 };
 
    bubbleSort( array, size );
    printArray( array, size );
    
    system( "pause" );
    return 0;
}
 
void printArray( int array[], int arraySize )
{
    for( int i = 0; i < arraySize; i++ )
        cout << array[ i ] << " ";
    
    cout << endl;
}
 
void bubbleSort( int array[], int arraySize )
{
    bool t = true;
    
    while( t == true )
    {
        t = false;
        
        for( int j = 0; j < arraySize; j++ )
            if( array[ j ] > array[ j + 1 ] ) {
                swap( array[ j ], array[ j + 1 ] );
                t = true;
            }
    }
}
 
void swap( int a, int b )
{
    int temp = a;
    a = b;
    b = temp; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2012, 04:48     Сортировка с пузырём
Посмотрите здесь:

Сортировка выбором, сортировка вставкой, сортировка заменой, сортировка обменом ("пузырьковая" сортировка) - C#
Создать класс, содержащий массив и реализующий алгоритмы сортировки и бинарного поиска в этом массиве. Класс описать с помощью...

Блок схема.Сортировка «Пузырьком», Сортировка методом «Последовательных перестановок», Сортировка «Вставками» - Pascal
Помогите, нужны блок схемы Сортировка «Вставками» Program Vstavka; uses dos; Type mass=array of integer; Var i,b,n,j,a:...

Разработать программу сортировки: сортировка перестановкой, сортировка вставкой, быстрая сортировка - Prolog
Задание: Разработать программу сортировки: - сортировка перестановкой - сортировка вставкой - быстрая сортировка

1)Бинарный поиск 2)Сортировка включением 3)Шейкерная сортировка 4)Сортировка разделением - Pascal
1)В заданном массиве К(N) найти индексы элементов, которые кратны минимальному значению элемента массива. 2)Задан массив AX (N). Добавить...

Сортировка массива целых чисел A(n) по убыванию(используя метод обменная сортировка) - Turbo Pascal
Помогите написать программу для сортировки массива целых чисел A(n) по убыванию(используя метод обменная сортировка). Или хотя бы без этого...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
24.02.2012, 07:21     Сортировка с пузырём #2
Элементы массива в функцию swap передаются по значению, а надо по ссылке. Кроме этого в цикле выход за пределы массива.
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
24.02.2012, 07:22     Сортировка с пузырём #3
vortexx1, передавайте значения в swap по ссылке
C++
1
void swap( int &, int & );
C++
1
2
3
4
5
6
void swap( int &a, int &b )
{
    int temp = a;
    a = b;
    b = temp; 
}
Добавлено через 55 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void bubbleSort( int array[], int arraySize )
{
    bool t = true;
    
    while( t == true )
    {
        t = false;
        
        for( int j = 0; j < arraySize - 1; j++ )
            if( array[ j ] > array[ j + 1 ] ) {
                swap( array[ j ], array[ j + 1 ] );
                t = true;
            }
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2012, 09:17     Сортировка с пузырём
Еще ссылки по теме:

Быстрая сортировка, ситуация, при которой сортировка работает не корректно - Turbo Pascal
Procedure sort(m, l: Integer); Var i, j, x, w: Integer; Begin i := m; j := l; x := ar; Repeat While...

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

Сортировка пирамидой: Вычислить сколько шагов сделала сортировка - PascalABC.NET
Есть код сортировки пирамидой, как теперь вычислить сколько шагов сделала сортировка прежде чем программа закончила работу, желательно с...

Работа с простейшими массивами: 1)сортировка; 2)определение суммы и сортировка - C#
1)Класс описывает одномерный массив, состоящий из n целых элементов со значениями в диапазоне от (0 до 100). Методы класса должны: менять...


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

Или воспользуйтесь поиском по форуму:
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
24.02.2012, 09:17  [ТС]     Сортировка с пузырём #4
Вот, точно. Спасибо, почему-то не подумал об этом.
Yandex
Объявления
24.02.2012, 09:17     Сортировка с пузырём
Ответ Создать тему
Опции темы

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