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

Bubble sort - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Crachc
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 15
12.03.2013, 15:22     Bubble sort #1
Учу сортировки массивов, но не знаю, как обращаться к ним через процедуру!
Процедура:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int sort(int *A[], int col){
    int temp;
    for( int i = 0; i < col; i++)
        for( int j = 0; i < col; j++){
            if(A[j] > A[j + 1]){
                temp = A [j];
                A[j] = A[j + 1];
                A[j + 1] = A [j];
            }
        }
    return 0;
}
Понимаю, что лучше и правильнее обращаться через указатель, но Visual Studio 2010 выдает ошибку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2013, 15:22     Bubble sort
Посмотрите здесь:

C++ bubble sort - по возрaстанию
Strand Sort C++
C++ std::sort
C++ Функция sort()
C++ sort()
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
12.03.2013, 15:29     Bubble sort #2
либо так
C++
1
int sort(int A[], int col)
либо так
C++
1
int sort(int *A, int col)
Crachc
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 15
12.03.2013, 15:37  [ТС]     Bubble sort #3
Обращаться к функции каким способом?
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
12.03.2013, 15:53     Bubble sort #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
#include <iostream>
#include <cstdlib>
 
int sort(int A[], int col){
    int temp;
    for( int i = 0; i < col; i++)
        for( int j = 0; j < col - 1; j++){ // исправьте
            if(A[j] > A[j + 1]){
                temp = A [j];
                A[j] = A[j + 1]; 
                A[j + 1] = temp; // исправьте
            }
        }
    return 0; // можно сделать тип функции void
}
 
void initMas(int A[], int col) {
    for( int i = 0; i < col; i++)
        A[i] = rand() % 50;
}
 
void showMas(int A[], int col) {
    for( int i = 0; i < col; i++)
        std::cout << A[i] << " ";
    std::cout << std::endl;
}
 
int main()
{
    const size_t size = 10;
    int mas[size];
    initMas(mas, size);
    showMas(mas, size);
    sort(mas, size);      // ваша функция
    showMas(mas, size);
    system("PAUSE>0");
    return 0;
}
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
12.03.2013, 16:59     Bubble sort #5
А вот бабл для любого типа данный (вызывается аналогично qsort из стандартной библиотеки)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
typedef int (*PTF)(const void *, const void *); 
 
void bubble(void* base, size_t n, size_t size, PTF cmp) 
{ 
    for (size_t i = 1; i < n; ++i) 
        for (size_t j = n-1; j>=i; --j) 
        {   
            char* b = static_cast<char*>(base); 
            char* lb = b + ((j-1) * size); 
            char* rb = b + (j * size); 
            if (cmp(lb, rb) > 0) 
            {   
                for (size_t i = 0; i < size; ++i) 
                {   
                    char temp = lb[i]; 
                    lb[i] = rb[i]; 
                    rb[i] = temp; 
                }   
            }   
        }   
}
Yandex
Объявления
12.03.2013, 16:59     Bubble sort
Ответ Создать тему
Опции темы

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