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

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

Восстановить пароль Регистрация
 
vortexx1
 Аватар для vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
24.02.2012, 04:48     Сортировка с пузырём #1
Здравствуйте. Начал изучать сортировки, хотел написать свой "пузырек", а оно чего-то работать не хочет, зацикливается. Поглядите, пожалуйста:

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++ сортировка
C++ Сортировка подсчетом и LSD сортировка
C++ сортировка
C++ сортировка
Пирамидальная сортировка и сортировка Шелла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
24.02.2012, 07:21     Сортировка с пузырём #2
Элементы массива в функцию swap передаются по значению, а надо по ссылке. Кроме этого в цикле выход за пределы массива.
R136a1
 Аватар для 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;
            }
    }
}
vortexx1
 Аватар для vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
24.02.2012, 09:17  [ТС]     Сортировка с пузырём #4
Вот, точно. Спасибо, почему-то не подумал об этом.
Yandex
Объявления
24.02.2012, 09:17     Сортировка с пузырём
Ответ Создать тему
Опции темы

Текущее время: 07:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru