Срешением, ! требуется отсортировать массив по неубыванию методом "пузырька". входные данные в первой строке вводится одно натуральное число, не превосходящее 1000 – размер массива. во второй строке n чисел – элементы массива (целые числа, не превосходящие по модулю 1000). выходные данные вывести получившийся массив.

yazeva006 yazeva006    2   19.07.2019 18:50    12

Ответы
memasov memasov  22.09.2020 15:58
Как ч понял сортировка по неубыванию это сортировка по возрастанию. То есть легкие элементы всплывают наверх, а тяжелые перемещаются вниз:

//Pascal
const m = 1000
var
    arr: array[1..m] of integer;
    n,i, j, k: integer;
begin
    readln(n);
    write ('Исходный массив: ');
    for i := 1 to n do begin
        readln(arr[i]);
    end;
//сортировка методом пузырька   
    for i := 1 to n-1 do
        for j := 1 to n-i do
            if arr[j] > arr[j+1] then begin
                k := arr[j];
                arr[j] := arr[j+1];
                arr[j+1] := k
            end;
 
    write ('Отсортированный массив: ');
    for i := 1 to n do
        write (arr[i]:4);
end.

Алгоритм сортировки на классическом языке программирования С

# define SWAP(A,B) {A=A^B;B=A^B;A=A^B;}
void bubblesort(int A[], int n)
 {
     int i, j;
     for(i = n-1 ; i > 0 ; i--)
          { for(j = 0 ; j < i ; j++)
               {
                   if( A[j] > A[j+1] ) SWAP(A[j],A[j+1]);
               }
           }
   }
ПОКАЗАТЬ ОТВЕТЫ
мотя105 мотя105  10.01.2024 20:16
Добрый день!

Хорошо, давайте рассмотрим задачу по сортировке массива методом "пузырька".

Вам дан массив, который необходимо отсортировать по неубыванию.

Для начала, давайте определим сам метод "пузырька". Он основан на сравнении соседних элементов и их перестановке, если они стоят в неправильном порядке. Алгоритм прокручивает массив несколько раз, пока все элементы не будут расположены в нужном порядке.

В качестве входных данных, в первой строке вводится одно натуральное число, которое обозначает размер массива. Во второй строке следуют n чисел - элементы массива.

Давайте решим эту задачу пошагово:

1. Считываем входные данные: размер массива и его элементы.

2. Создаем цикл, который будет повторяться n раз, так как мы хотим прокрутить массив ровно столько раз, чтобы все элементы были отсортированы.

3. Внутри цикла создаем еще один цикл, который будет сравнивать соседние элементы и переставлять их местами, если они стоят в неправильном порядке.

4. Внутренний цикл прокручивается от 0 до (n-1), так как мы сравниваем каждый элемент с его следующим соседом.

5. Во время прокрутки внутреннего цикла, сравниваем текущий элемент с его соседом.

6. Если текущий элемент больше следующего элемента, то меняем их местами.

7. После завершения внутреннего цикла одной итерации, самый большой элемент будет перемещен в самый правый конец массива.

8. Повторяем шаги 5-7 для всех элементов массива, чтобы все элементы были отсортированы.

9. Выводим отсортированный массив.

Таким образом, получаем решение задачи:

```python
# Шаг 1: Считываем входные данные
n = int(input("Введите размер массива: "))
arr = list(map(int, input("Введите элементы массива через пробел: ").split()))

# Шаг 2: Внешний цикл для прокрутки массива
for i in range(n):

# Шаг 3: Внутренний цикл для сравнения и перестановки элементов
for j in range(n-i-1):

# Шаг 4: Сравниваем текущий элемент с его соседом
if arr[j] > arr[j+1]:

# Шаг 6: Меняем элементы местами
arr[j], arr[j+1] = arr[j+1], arr[j]

# Шаг 9: Выводим отсортированный массив
print("Отсортированный массив:")
print(arr)
```

Теперь, школьник может легко понять, что происходит в каждом шаге алгоритма и каким образом массив будет отсортирован методом "пузырька". Надеюсь, это поможет вам в решении задачи! Если у вас возникнут еще вопросы, пожалуйста, дайте мне знать.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика