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

Написать функцию сортировки пузырьком массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ [с++] ключи http://www.cyberforum.ru/cpp-beginners/thread183561.html
Дима потерял свои ключи. Виктор Геннадьевич хотел пошутить и спрятал ключи Димы и оставил описание о том, как найти. Описание состоит из строк вида: "North-5", где слово является одним из "North", "South", "East", "West", задает направление, и количество шагов в этом направлении. Дима очень ленивый, и он не хочет следовать шагах от описания, так что, помочь ему, чтобы написать программу,...
C++ Вычислить произведение выводя все промежуточные рез-ты Вычислить произведение,выводя все промежуточные рез-ты умножения по n в таблицу.Для рисования таблицы используйте символы псевдографики (используя либо кодовую таблицу символов:десятичные коды 176-223 В КТ866(MS-DOS),либо драйвер клавиатуры keyrus).Начальное и конечное значение по n считывать из файла(данных).Все рез-ты вывести в файл(рез-ов).Показать программу и оба файла. Cамо произведение... http://www.cyberforum.ru/cpp-beginners/thread183554.html
Найти пятницы и вторники под числом 13 в 1999 году C++
Пожалуйста напишите код программы к арифмет задаче на С++: Известно, что 1 января 1999 г. – пятница. Программа должна найти все “черные вторники” и “черные пятницы” 1999 года (то есть – 13 числа) ПОМОГИТЕ...я новичок в этом деле....мне пипец как надо!!! Буду оч признателен...
Задан массив точек. Найти 3 точки... C++
Задан массив точек. Найти 3 точки, делающие треугольник максимальной площади.
C++ Прошу подсказать в чем ошибка http://www.cyberforum.ru/cpp-beginners/thread183480.html
Нужно заменить элементы главной диагонали на элементы побочной диагонали матрицы, вот что получается: #include <iostream.h> #include <stdlib.h> #include <conio.h> #include <math.h> main() { const int n=3; int mas; int i,j;
C++ Списки Помогите написать прогу, пожалуйста, и найти толковую литературу по теме: Разработайте программу , которая формирует список L, включая в него по одному разу элементы, которые входят хотя бы в один из списков L1, L2 подробнее

Показать сообщение отдельно
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
29.10.2010, 23:27     Написать функцию сортировки пузырьком массива
Цитата Сообщение от go Посмотреть сообщение
ну составте пример функции и ее использование
да не вопрос! только пузырьки - это не серьёзно...
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
69
70
71
72
73
74
75
76
77
78
#include <stdio.h>
 
void int_swap(int * a, int * b){
    int tmp = *a;
    *a = *b;
    *b = tmp;
}
 
int int_cmp_asc(int * a, int * b){
    return *a - *b;
}
 
int int_cmp_desc(int * a, int * b){
    return *b - *a;
}
 
void int_sort(int * arr, int size, int (* cmp)(int * a, int * b)){
    int * middle = arr + size / 2;
    int * head = arr;
    int * tail = arr + size - 1;
    
    if ( size < 2 )
        return;
    else if ( size == 2 ){
        if ( cmp(arr, arr + 1) > 0 )
            int_swap(arr, arr + 1);
        return;
    }
    else {
        while ( 1 ){
            while ( head < middle ){
                if ( cmp(head, middle) > 0 )
                    break;
                ++head;
            }
            while ( tail > middle ){
                if ( cmp(tail, middle) < 0 )
                    break;
                --tail;
            }
            if ( head >= tail )
                break;
            int_swap(head, tail);
            if ( middle == head )
                middle = tail;
            else if ( middle == tail )
                middle = head;
        }
        int_sort(arr, middle - arr, cmp);
        int_sort(middle + 1, size - (middle - arr) - 1, cmp);
    }
}
 
#define ROWS 2
#define COLUMNS 5
 
int main(void){
    int arr[ROWS][COLUMNS] = {
        { 4, 5, 2, 6, 1 },
        { 3, 8, 0, 9, 7 }
    };
    int i, j;
    
    printf("Unsorted:\n");
    for ( i = 0; i < ROWS; ++i )
        for ( j = 0; j < COLUMNS; ++j )
            printf("%d%c", arr[i][j], ( j < COLUMNS - 1 ) ? ' ' : '\n');
    
    int_sort(arr[0], COLUMNS, int_cmp_asc);
    int_sort(arr[1], COLUMNS, int_cmp_desc);
    
    printf("First ascendant, second descendant:\n");
    for ( i = 0; i < ROWS; ++i )
        for ( j = 0; j < COLUMNS; ++j )
            printf("%d%c", arr[i][j], ( j < COLUMNS - 1 ) ? ' ' : '\n');
    
    return 0;
}
 
Текущее время: 04:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru