2 / 2 / 0
Регистрация: 25.03.2018
Сообщений: 91
1

Сортировка части массива

02.03.2019, 22:23. Показов 13596. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Напишите программу, которая выполняет сортировку части массива, начиная с элемента с номером K и заканчивая элементом с номером M (включительно). Нумерация элементов массива начинается с единицы.

Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . В третьей строке через пробел записаны три числа – K ( 0 < K ≤ N ), M ( K ≤ M ≤ N ) и значение D , задающее направление сортировки. Если D = 1 , требуется сортировка по возрастанию, если D =  - 1 – сортировка по убыванию.

Выходные данные
Программа должна вывести в одной строке все элементы массива, отсортированного нужным образом, разделив их пробелами.

Примеры
входные данные
6
1 2 3 4 5 6
2 5 -1
выходные данные
1 5 4 3 2 6
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2019, 22:23
Ответы с готовыми решениями:

Сортировка массива каждым из 3 способов (пузырьковая сортировка, сортировка выбором, сортировка вставкой)
1. Напишите программу, которая выполняет следующие функции: • заполнение элементов массива...

Сортировка массива , передавая части массива в несколько потоков
Помогите понять как работает эта программа class ProducerConsumer&lt;T&gt; : IDisposable { ...

Сортировка части массива
Отсортировать первую треть массива по возрастанию.

Сортировка массива по дробной части
Здравствуйте всем! Пытаюсь вывести массив в порядке возрастания их дробной части. выводит:...

Сортировка части одномерного массива
Если число x встречается в данной последовательности целых чисел, то упорядочить по неубыванию...

2
3572 / 2173 / 570
Регистрация: 02.09.2015
Сообщений: 5,488
03.03.2019, 06:51 2
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Python
1
2
3
4
5
6
7
8
9
def main():
    n = int(input())
    a = list(map(int, input().split(maxsplit = n)))
    k, m, d = map(int, input().split(maxsplit = 3))
    a[k - 1:m] = sorted(a[k - 1:m], reverse = d < 0)
    print(*a)
    
if __name__ == "__main__":
    main()
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36587 / 20317 / 4218
Регистрация: 12.02.2012
Сообщений: 33,616
Записей в блоге: 13
03.03.2019, 09:03 3
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

И честно (без изюма из булки):

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
def cmp(a,b,f):
    if (f>0):
        return a>b
    else:
        return a<b
    
def partSort(arr,ibeg,iend,f):
    if (iend>ibeg):
        sep=arr[(ibeg+iend)//2]
        i=ibeg
        j=iend
        while(True):
            while(cmp(sep,arr[i],f)): 
                i+=1
            while(cmp(arr[j],sep,f)): 
                j-=1
            if (i<=j):
                arr[i],arr[j]=arr[j],arr[i]
                i+=1
                j-=1
            if (i>j):
                break
        partSort(arr,ibeg,j,f)
        partSort(arr,i,iend,f)
 
n = int(input())
arr = list(map(int, input().split(maxsplit = n)))
ibeg, iend, f = map(int, input().split(maxsplit = 3))
partSort(arr,ibeg-1,iend-1,f)
print(str(arr))
https://ideone.com/HIGb3H
0
03.03.2019, 09:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2019, 09:03
Помогаю со студенческими работами здесь

Сортировка массива по части его строк
Народ объясните как сортировать массивы вот таким способом: |12345 5|1234 54|123 543|12...

Сортировка целой части вещественных элементов массива С++
Здравствуйте,прошу помочь с фрагментом задачки:Дан одномерный массив из 100 элементов, состоящий из...

Сортировка первой части массива (шейкерной сортировкой)
Здраствуйте,форумчане нужно отсортировать первую часть массива(методом шейкером сортировки),буду...

Разделение массива и сортировка каждой части методом пузырька
Помогите решить пример: Имеется массив целых чисел большого размера. Требуется разделить этот...

Массив целых чисел делится на 3 части двумя элементами: максимальным и минимальным. Определите сумму элементов в каждой части массива
Заданный массив целых чисел делится на 3 части двумя элементами: максимальным и минимальным....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru