С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.11.2022
Сообщений: 15

Список: линейный и двоичный поиск всех товаров, имеющих цену меньше 20000 руб

08.02.2023, 13:32. Показов 795. Ответов 3

Студворк — интернет-сервис помощи студентам
Дан список, содержащий 10 записей, каждая из которых имеет структуру:
Шифр товара Наименование Цена (в руб.) Количество
тип строка тип строка вещественное экземпляров
5 символов 20 символов число целое число
Список упорядочен по убыванию цены товара.
Разработать алгоритмы и программы линейного и двоичного поиска всех товаров, имеющих цену меньше 20000 руб. с выводом найденных записей на экран.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2023, 13:32
Ответы с готовыми решениями:

Разработать программу, выполняющую поиск товаров, имеющих цену меньше 20000 руб
Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру: (Шифр товара, Наименование, Цена (в руб.), Количество) ...

Поиск всех товаров, имеющих цену не меньше 25000 руб
Дан список, содержащий 10 записей, каждая из которых имеет структуру: ----- Шифр товара-----Наименование товара...

Односвязный линейный список: Для трёх товаров с максимальной ценой уменьшить цену в два раза
Помогите пожалуйста составить алгоритм решения задачи с односвязным линейным списком. Для трёх товаров с максимальной ценой (->price),...

3
 Аватар для Lusinka
28 / 26 / 3
Регистрация: 09.02.2023
Сообщений: 31
09.02.2023, 17:14
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#Алгоритм линейного поиска
def linear_search(products, target_price):
    result = []
    for product in products:
        if product[2] < target_price:
            result.append(product)
    return result
 
# Алгоритм бинарного поиска
def binary_search(products, target_price):
    low = 0
    high = len(products) - 1
    result = []
    while low <= high:
        mid = (low + high) // 2
        if products[mid][2] == target_price:
            break
        elif products[mid][2] < target_price:
            low = mid + 1
        else:
            high = mid - 1
    for i in range(mid, len(products)):
        if products[i][2] < target_price:
            result.append(products[i])
        else:
            break
    return result
 
# Примерный список продуктов
products = [    ['P0001', 'Product 1', 35000, 5],
    ['P0002', 'Product 2', 30000, 10],
    ['P0003', 'Product 3', 25000, 15],
    ['P0004', 'Product 4', 20000, 20],
    ['P0005', 'Product 5', 15000, 25],
    ['P0006', 'Product 6', 10000, 30],
    ['P0007', 'Product 7', 5000, 35],
    ['P0008', 'Product 8', 3000, 40],
    ['P0009', 'Product 9', 2000, 45],
    ['P0010', 'Product 10', 1000, 50],
]
 
# Цена
target_price = 20000
 
# Результат линейного поиска
result = linear_search(products, target_price)
print("Linear search result:")
for product in result:
    print(product)
 
# Результат бинарного поиска
result = binary_search(products, target_price)
print("\nBinary search result:")
for product in result:
    print(product)
Результатом моей программы будет такой вывод:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Результат линейного поиска:
['P0004', 'Product 4', 20000, 20]
['P0005', 'Product 5', 15000, 25]
['P0006', 'Product 6', 10000, 30]
['P0007', 'Product 7', 5000, 35]
['P0008', 'Product 8', 3000, 40]
['P0009', 'Product 9', 2000, 45]
['P0010', 'Product 10', 1000, 50]
 
Результат бинарного поиска:
['P0004', 'Product 4', 20000, 20]
['P0005', 'Product 5', 15000, 25]
['P0006', 'Product 6', 10000, 30]
['P0007', 'Product 7', 5000, 35]
['P0008', 'Product 8', 3000, 40]
['P0009', 'Product 9', 2000, 45]
['P0010', 'Product 10', 1000, 50]
2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
10.02.2023, 07:47
Lusinka, что-то ты напутал(а) с двоичным поиском... Не должен он захватывать цену поиска (в условии - меньше 20000).

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
31
products = [    ['P0001', 'Product 1', 35000, 5],
                ['P0002', 'Product 2', 30000, 10],
                ['P0003', 'Product 3', 25000, 15],
                ['P0004', 'Product 4', 20000, 20],
                ['P0004', 'Product 4', 20000, 20],
                ['P0005', 'Product 5', 15000, 25],
                ['P0006', 'Product 6', 10000, 30],
                ['P0007', 'Product 7', 5000, 35],
                ['P0008', 'Product 8', 3000, 40],
                ['P0009', 'Product 9', 2000, 45],
                ['P0010', 'Product 10', 1000, 50],
           ]
           
def bin_search (lst,pr):
    sz=len(lst)
    left=0
    right=sz-1
    while right-left>1:
        mid=(right+left)//2
        if lst[mid][2] == pr:
            i=mid+1
            while lst[i][2] == pr:
                i+=1
            return lst[i:]
        elif lst[mid][2] > pr:
            left=mid
        else:
            right=mid
    return lst[right:]
    
print(bin_search(products,10000))
0
 Аватар для Lusinka
28 / 26 / 3
Регистрация: 09.02.2023
Сообщений: 31
10.02.2023, 17:09
Catstail, спасибо, что поправили, действительно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2023, 17:09
Помогаю со студенческими работами здесь

Структуры: найти суммарный вес товаров, цена которых не превосходит среднюю цену всех товаров
Даны сведения о товарах: наименование , вес, страна, производитель. Найти суммарный вес товаров , цена которых не превосходит среднюю цену...

Линейный и двоичный поиск рейсов, вылетающих из всех пунктов, наименование которых начинается с буквы "К"
Задание: Разработать схему алгоритма и программу решения задачи поиска в массиве записей по заданным полям, с использованием алгоритмов...

Линейный поиск в неупорядоченной таблице без барьера, двоичный поиск, поиск в двоичном дереве
Помогите пожалуйста написать программу, которая позволяет подсчитать, сколько раз в текстовом файле(ах) встретилось каждое из слов,...

Выдать наименования товаров, имеющие цену меньше 100
Поля структуры: шифр товара, наименование, количество едениц и цена одной еденицы. Выдать наименования товаров, имеющие цену меньше 100.

Напечатать список изделий,изготовленных на сумму от 20000 до 25000 руб.
Даны массивы s1,...,s10-наименование предприятий; с1,...,c10-стоимость изделий; k1,...,k10-количество изделий изготовленных за месяц;...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru