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

входные данные

первая строка содержит размер массива n . во второй строке через пробел n чисел – элементы массива. гарантируется, что 0 < n ≤ 1 .

выходные данные

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

язык программирования: python
метод камня вроде как тоже самое, что и метод пузырька

Frank9110 Frank9110    1   23.12.2019 13:16    184

Ответы
daniilznanija0 daniilznanija0  15.01.2024 13:31
Хорошо, давайте решим задачу шаг за шагом.

1. Сначала мы должны прочитать входные данные: размер массива n и элементы массива. Это можно сделать с помощью функции input(), разделитель пробел " " позволит нам разделить элементы массива.
Пример кода:
```python
n = int(input())
arr = list(map(int, input().split()))
```

2. Затем мы можем начать сортировку методом "камня". Для этого мы используем цикл от 0 до (n-1), который будет представлять каждую итерацию сортировки.
Пример кода:
```python
for i in range(n-1):
```

3. Внутри цикла у нас должен быть еще один цикл, который выполнится от i+1 до n. Он представляет проход по неотсортированной части массива.
Пример кода:
```python
for j in range(i+1, n):
```

4. Внутри второго цикла мы сравниваем элементы arr[j] и arr[i], и если arr[j] больше arr[i], то мы меняем их местами, используя временную переменную temp.
Пример кода:
```python
if arr[j] > arr[i]:
temp = arr[j]
arr[j] = arr[i]
arr[i] = temp
```

5. После каждой перестановки элементов мы выводим отсортированный массив при помощи функции print(), добавляя пробелы между элементами при помощи параметра sep=" ".
Пример кода:
```python
print(*arr, sep=" ")
```

6. В конце программы мы должны проверить, были ли перестановки элементов. Если не было ни одной перестановки, мы выводим только число 0.
Пример кода:
```python
if i == 0:
print(0)
```

7. Полный код программы для сортировки методом "камня" выглядит следующим образом:
```python
n = int(input())
arr = list(map(int, input().split()))

for i in range(n-1):
for j in range(i+1, n):
if arr[j] > arr[i]:
temp = arr[j]
arr[j] = arr[i]
arr[i] = temp
print(*arr, sep=" ")

if i == 0:
print(0)
```

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

Популярные вопросы