profile
Размещено 2 года назад по предмету Информатика от gogoprog

Ребята, кто разбирается в Python, помогите решить задачу, вот мой код:

a = list(map(int, input().split()))

t = 0

for i in range((len(a)//2)):

for j in range(i+1, len(a)//2):

if a[i] > a[j]:

a[i], a[j] = a[j], a[i]

for i in range((len(a)//2) + 1, len(a)):

for j in range(len(a) //2 + 1, len(a) - 1):

if a[i] < a[j]:

a[j], a[i] = a[i], a[j]

for i in range(len(a)):

print(a[i], end = " ")

Проблема в том, что он вторую половину массива сортирует тоже по возрастанию, а не по убыванию :(

Нужно обязательно сортировкой, без встроенных функций в пайтон

  1. Ответ на вопрос
    Ответ на вопрос дан d2467814

    Ответ:

    Проблема в коде заключается в том, что второй цикл в сортировке второй половины массива должен начинаться со значения i+1, а не с len(a)//2 + 1, а также индекс len(a)-1 во втором цикле не нужен, так как он приведет к тому, что последний элемент не будет участвовать в сортировке.

    Вот исправленный код для сортировки второй половины массива по убыванию:

    a = list(map(int, input().split()))

    for i in range(len(a)//2, len(a)):

       for j in range(i+1, len(a)):

           if a[i] < a[j]:

               a[i], a[j] = a[j], a[i]

    for i in range(len(a)):

       print(a[i], end = " ")

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

    Объяснение:

    не работает сразу говори мне я исправлю

    1. Ответ на вопрос
      Ответ на вопрос дан gogoprog
      О, все, получилось!
    2. Ответ на вопрос
      Ответ на вопрос дан gogoprog
      Где-то строка неверна была
    3. Ответ на вопрос
      Ответ на вопрос дан gogoprog
      Вы были правы, спасибо за ответ!
    4. Ответ на вопрос
      Ответ на вопрос дан d2467814
      Не за что, удачи в покорении языков програмированния
    5. Ответ на вопрос
      Ответ на вопрос дан gogoprog
      Единственное, можно вопрос, если у нас выполняется len(a)//2 он за кончится включительно на элементе с индексом 2 или 3?
  2. Ответ на вопрос
    Ответ на вопрос дан papelde44

    Ответ:

    Проблема вашего кода в том, что вы используете две разные сортировки для разных частей списка a, но обе сортировки одинаковы.

    a = list(map(int, input().split()))

    t = 0

    for i in range((len(a)//2)):

    for j in range(i+1, len(a)//2):

    if a[i] > a[j]:

    a[i], a[j] = a[j], a[i]

    for i in range((len(a)//2) + 1, len(a)):

    for j in range(i + 1, len(a)):

    if a[i] < a[j]:

    a[j], a[i] = a[i], a[j]

    for i in range(len(a)):

    print(a[i], end = " ")

    1. Ответ на вопрос
      Ответ на вопрос дан gogoprog
      В этом и проблема, условия вроде как верны, а изменения циклов не помогают так же, или я где то мудрю лиший раз
    2. Ответ на вопрос
      Ответ на вопрос дан papelde44
      скорее всего, если вы вводите нечетное количество элементов в список, то вы можете получить ошибку на строке for j in range(len(a) //2 + 1, len(a) - 1):, потому что len(a) - 1 может быть четным числом, а range() ожидает нечетное число аргументов.
    3. Ответ на вопрос
      Ответ на вопрос дан papelde44
      я могу редактировать ответ с исправленным кодом с проверкой на четность
    4. Ответ на вопрос
      Ответ на вопрос дан gogoprog
      Разобралась, нашла ошибку у себя, там с циклом проблемы были какие- то
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.