#include <stdio.h>
#include <stdlib.h>
int* bubbleSort(const int* arr, int size) {
// Создание копии исходного массива
int* sortedArr
= (int*)malloc(size
* sizeof(int)); if (sortedArr == NULL) {
// Ошибка при выделении памяти
return NULL;
}
for (int i = 0; i < size; i++) {
sortedArr[i] = arr[i];
}
// Сортировка пузырьком
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (sortedArr[j] > sortedArr[j + 1]) {
// Обмен значениями
int temp = sortedArr[j];
sortedArr[j] = sortedArr[j + 1];
sortedArr[j + 1] = temp;
}
}
}
return sortedArr;
}
int main() {
int arr[] = {5, 2, 9, 1, 5, 6};
int size = sizeof(arr) / sizeof(arr[0]);
// Вызов функции сортировки
int* sortedArr = bubbleSort(arr, size);
if (sortedArr == NULL) {
printf("Ошибка выделения памяти.\n"); return 1;
}
// Вывод отсортированного массива
printf("Отсортированный массив: "); for (int i = 0; i < size; i++) {
}
// Удаление копии массива из памяти
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCogYnViYmxlU29ydChjb25zdCBpbnQqIGFyciwgaW50IHNpemUpIHsKICAgIC8vINCh0L7Qt9C00LDQvdC40LUg0LrQvtC/0LjQuCDQuNGB0YXQvtC00L3QvtCz0L4g0LzQsNGB0YHQuNCy0LAKICAgIGludCogc29ydGVkQXJyID0gKGludCopbWFsbG9jKHNpemUgKiBzaXplb2YoaW50KSk7CiAgICBpZiAoc29ydGVkQXJyID09IE5VTEwpIHsKICAgICAgICAvLyDQntGI0LjQsdC60LAg0L/RgNC4INCy0YvQtNC10LvQtdC90LjQuCDQv9Cw0LzRj9GC0LgKICAgICAgICByZXR1cm4gTlVMTDsKICAgIH0KICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CiAgICAgICAgc29ydGVkQXJyW2ldID0gYXJyW2ldOwogICAgfQogICAgCiAgICAvLyDQodC+0YDRgtC40YDQvtCy0LrQsCDQv9GD0LfRi9GA0YzQutC+0LwKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZSAtIDE7IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgc2l6ZSAtIGkgLSAxOyBqKyspIHsKICAgICAgICAgICAgaWYgKHNvcnRlZEFycltqXSA+IHNvcnRlZEFycltqICsgMV0pIHsKICAgICAgICAgICAgICAgIC8vINCe0LHQvNC10L0g0LfQvdCw0YfQtdC90LjRj9C80LgKICAgICAgICAgICAgICAgIGludCB0ZW1wID0gc29ydGVkQXJyW2pdOwogICAgICAgICAgICAgICAgc29ydGVkQXJyW2pdID0gc29ydGVkQXJyW2ogKyAxXTsKICAgICAgICAgICAgICAgIHNvcnRlZEFycltqICsgMV0gPSB0ZW1wOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBzb3J0ZWRBcnI7Cn0KCmludCBtYWluKCkgewogICAgaW50IGFycltdID0gezUsIDIsIDksIDEsIDUsIDZ9OwogICAgaW50IHNpemUgPSBzaXplb2YoYXJyKSAvIHNpemVvZihhcnJbMF0pOwoKICAgIC8vINCS0YvQt9C+0LIg0YTRg9C90LrRhtC40Lgg0YHQvtGA0YLQuNGA0L7QstC60LgKICAgIGludCogc29ydGVkQXJyID0gYnViYmxlU29ydChhcnIsIHNpemUpOwogICAgaWYgKHNvcnRlZEFyciA9PSBOVUxMKSB7CiAgICAgICAgcHJpbnRmKCLQntGI0LjQsdC60LAg0LLRi9C00LXQu9C10L3QuNGPINC/0LDQvNGP0YLQuC5cbiIpOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIC8vINCS0YvQstC+0LQg0L7RgtGB0L7RgNGC0LjRgNC+0LLQsNC90L3QvtCz0L4g0LzQsNGB0YHQuNCy0LAKICAgIHByaW50Zigi0J7RgtGB0L7RgNGC0LjRgNC+0LLQsNC90L3Ri9C5INC80LDRgdGB0LjQsjogIik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAgIHByaW50ZigiJWQgIiwgc29ydGVkQXJyW2ldKTsKICAgIH0KICAgIHByaW50ZigiXG4iKTsKCiAgICAvLyDQo9C00LDQu9C10L3QuNC1INC60L7Qv9C40Lgg0LzQsNGB0YHQuNCy0LAg0LjQtyDQv9Cw0LzRj9GC0LgKICAgIGZyZWUoc29ydGVkQXJyKTsKCiAgICByZXR1cm4gMDsKfQ==