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

Отсортировать массив по убыванию методом "пузырька" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести на экран тех людей с одинаковым телефоном http://www.cyberforum.ru/cpp-beginners/thread867550.html
Приветствую. Такая задача: дан файл, в котором есть поля - фамилия, инициалы, номер телефона. Отсортировать файл, по алфавиту (по полю фамилия), а потом вывести на экран тех людей, у которых одинаковые телефоны. С сортировкой проблем нет, а вот вывести на экран тех, у которых одинаковые телефоны - есть проблемы. #include <stdio.h> #include <iostream> #include <string.h> typedef struct...
C++ Сортировка массива Здравствуйте! Вот имею такую задачу: Дано 2 массива a b, написать программу, которая изменяет данные массивы, в соответствии с правилом: наибольшие элементы с массива a b принимаются в качестве нового значения a, а меньшие - в b. Прошу помощи. Вот то, что смог реализовать я: #include <iostream> #include <conio.h> using namespace std; void main() { int b, a, i; for (i=0; i<5; i++) http://www.cyberforum.ru/cpp-beginners/thread867542.html
Определить позицию первого и последнего нуля в одномерном массиве C++
Определить позицию первого и последнего нуля в одномерном массиве, использую цикл For. Например массив состоит из 10307, программа в ответе должна выдать, что первый ноль стоит на второй позиции, а последний ноль стоит на четвертой позиции. Помогите плиз решить данную задачу.
многопточное перемножение матриц C++
Решил проверить многопоточность при построчном перемножении матриц. Создал программку(проект в аттаче), в которой можно задать размер матриц и кол-во потоков. Проделав несколько измерений на разных машинах(1,2 и 4 ядерных) пришёл неоднозначным результатам. Пытаюсь набросать небольшой отчёт по ходу дела(черновик в аттаче). Вопщем интересует вот-что:ъ 1. Где прирост производительности от 50 до...
C++ Потоки:обработка нажатия клавиш; вычисления,прорисовка http://www.cyberforum.ru/cpp-beginners/thread867508.html
Доброго времени суток,господа! Делаю курсовую - игру "змейка",тема изъезженная,да и не об этом сейчас,т.к. функционал рабочий есть. Препод предложил распараллелить программу на 2 потока: 1)обработка нажатия клавиш 2)вычисления,прорисовка. Попытался сделать,но клавиша обрабатывается, если долго и упорно долбить по ней, что у меня вызывает вопросы,т.к. в логе прописывается,что клавиша была...
C++ Как сделать так чтобы менялись местами и остальные поля? По температуре сортирует. Как сделать так чтобы менялись местами и остальные поля? #include <stdio.h> #include <conio.h> #include <string.h> #define n 2 struct students { char a; int b; int c; подробнее

Показать сообщение отдельно
dev-a1056
 Аватар для dev-a1056
228 / 95 / 4
Регистрация: 16.04.2013
Сообщений: 315
Записей в блоге: 2
17.05.2013, 16:18     Отсортировать массив по убыванию методом "пузырька"
porodonox, это уже ни в какие ворота не лезет.. Алгоритмы сортировок

Добавлено через 29 минут
и если уж пузырек, то хотя бы оптимизированный:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
template <class InputIterator>
void comb_sort(InputIterator begin, InputIterator end) {
    const float shrink = 1.3f;
    int swap;
    size_t gap = 0;
    InputIterator current = begin;
    while(current != end) {++current, ++gap;}
    bool swapped = false;
 
    while ((gap > 1) || swapped) {
        if (gap > 1) {
            gap = (size_t)((float)gap / shrink);
        }
        swapped = false;
        for (InputIterator current = begin; current + gap != end; ++current) {
            if (*current - *(current + gap) > 0) {
                std::iter_swap(current, current + gap);
                swapped = true;
            }
        }
    }
}
Добавлено через 2 минуты
она конечно называется расческой, но в основе пузырек, как и Шелл - это вставками, как не крути.

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