Пузырёк в Массиве

Problem #23

Tags: arrays loops if-else sorting c-0 implementation

Who solved this?

Back to English version

Эта задача является упражнением для изучения идеи, лежащей в основе знаменитого алгоритма Сортировки Пузырьком - который, предположительно, вы напишете чуть позже (или уже написали).

Пусть нам дан массив целых чисел, и мы проходим по парам соседних элементов от начала. Будем обменивать членов каждой пары если первый из них больше второго (т.е.они нарушают порядок).

Например, пусть у нас маленький массив из чисел 1 4 3 2 6 5 - отметим какие пары подвергаются перестановке, а какие нет:

(1  4) 3  2  6  5  - пропускаем
 1 (4  3) 2  6  5  - обмениваем
 1  3 (4  2) 6  5  - обмениваем
 1  3  2 (4  6) 5  - пропускаем
 1  3  2  4 (6  5) - обмениваем
 1  3  2  4  5  6  - закончили

Эта операция продвигает элементы покрупнее к концу массива, в то время как меньшие элементы сдвигаются немного к началу.
Что особенно важно: наибольший элемент обязательно уходит в самую последнюю позицию.

Входные данные содержат последовательность элементов массива, все целые положительные. После них следует -1 означающее конец (это значение не нужно включать в массив).
Ответ должен содержать два значения - количество осуществленных перестановок и контрольную сумму массива после произведенной операции.
Контрольную сумму считаем как в задаче Контрольная Сумма.

Пример:

входные данные:
1 4 3 2 6 5 -1

ответ:
3 5242536
You need to login to get test data and submit solution.