Найти - Пользователи
Полная версия: Задача с сортировкой в массиве.
Начало » Центр помощи » Задача с сортировкой в массиве.
1
liq273
Здравствуйте.
Помогите, пожалуйста, советом\подсказкой решить задание самостоятельно.

Задание:
Сгенерировать двумерный целочисленный массив a размерностью m x n из случайных чисел в диапазоне от -x до +y , предусмотрев возможность ручного ввода элементов массива.
Используя два типа сортировки (пузырьковая, шелла), отсортировать элементы массива a по строкам начиная с элемента a и заканчивая элементом a, k>=c (l<=d). Остальные элементы массива не сортировать и оставить на первоначальных местах. Дополнительный массив не заводить.
Отсортированный массив записать в файл.

У меня получилось сделать:

# Просим пользователя определить масив
m = input(“Введите значение m (количество строк): ”)
n = input(“Введите значение n (количество столбцов): ”)
x = input(“Введите значение x: ”)
y = input(“Введите значение y: ”)

# Проверяем значение x, если оно не отрицательное то делаем его отрицательным
if int(x) > 0:
x_1 = int(x) * -1
else:
x_1 = int(x)

# Создаем массив a
import numpy as np
a = np.random.randint(x_1, int(y), size = (int(m), int(n)))

print(“На основании введенных Вами данных сформирован массив ‘a’:”)
print(a)

#Просим пользователя определить какие данные будут выбраны ил массива a для сортировки
k = input(“Введите значение k: ”)
c = input(“Введите значение c: ”)
l = input(“Введите значение l: ”)
d = input(“Введите значение d: ”)

k_c = np.arange(int(k), int©)
l_d = np.arange(int(l), int(d))

#Функция для выбора данных из массива a
def f():
return a

Этим получилось решить пункты:
1. Сгенерировать двумерный целочисленный массив a размерностью m x n из случайных чисел в диапазоне от -x до +y.
2. предусмотрев возможность ручного ввода элементов массива.
3. определить функцию с элемента a и заканчивая элементом a, k>=c (l<=d) для последующей сортировки.

Не понимаю как отсортировать данные с элемента a и заканчивая элементом a, k>=c (l<=d) и поместить их обратно в массив a.
Супер если подскажите что именно использовать и что не так с моим кодом.
Python 3.7, NumPy 1.17.4, Windows 10, PyCharm 2019.3 (Edu).

Спасибо!
FishHook
liq273
Не понимаю как отсортировать данные с элемента a и заканчивая элементом a, k>=c (l<=d) и поместить их обратно в массив a.
Супер если подскажите что именно использовать и что не так с моим кодом.
сделайте обёртку над двумерным массивом, который работает с ним как будто это одномерный массив.
То есть, предположим у нас есть массив
 [[0, 3, 6, 7],
 [90, -1, 4, 7],
 [5, 0, 0, 1]
]
вы можете индексировать его как обычно
 l[1][2] == 4
но через класс-обертку вы можете индексировать его как вектор
 wrapper(l)[6] == 4 == l[1][2]
а дальше тривиально, сортируете срез массива в нужных границах.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB