Файл: Питон тілінде бар кіріктірілген срыптау алгоритмі.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.03.2024

Просмотров: 4

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Питон тілінде бар кіріктірілген сұрыптау алгоритмі — Timsort. Үлкен тізімдерде ол біріктіруді сұрыптау сияқты, ал кішкентай бөліктерде кірістіру ретінде жұмыс істейді. Бұл алгоритм Питон тілінде пайдалану үшін арнайы оңтайландырылған, сондай-ақ бастапқы тізім дерлік сұрыпталса, жылдам жұмыс істейді (сызықтық уақыт).

Салыстыруға болатын кез келген нысандарды — сандарды, жолдарды (олар лексикографиялық түрде салыстырылады), тізімдерді, кортеждерді сұрыптауға болады. Объектілердің өз класын жариялауға, олар үшін салыстыру функциясын анықтауға болады, содан кейін кірістірілген сұрыптау оларды сұрыптай алады.

Сұрыптау қоңырауының екі жолы бар. Бірінші әдіс-бұл тізім үшін шақырылған sort әдісі. Мысалы:
import random

A = [random.randint(1, 1000) for i in range(1000)]

A.sort()

Бұл жағдайда "орнында" сұрыптау жүргізіледі, яғни тізім элементтері тоқтатылады. Sort әдісі мәндерді қайтармайды, сондықтан sort әдісіне шақыру нәтижесін арифметикалық өрнектерде немесе нәтиже шығарғанда қолдануға болмайды.

Басқа әдіс-бұл функция sorted. Ол, керісінше, оған берілген тізімді өзгертпейді және жаңа тізімді қайтарады. Sorted функциясын пайдалануға болады:
import random

A = [random.randint(1, 1000) for i in range(1000)]

B = sorted(A)

Кіріс-шығыста sorted функциясын пайдалануға болады. Бұл бағдарлама бір жолдан стандартты енгізуден оқыған тізімді сұрыптайды, бос орындармен бөлінген сандардан тұратын және нәтижені экранға шығарады.
print(" ".join(map(str, sorted(map(int, input().split())))))

Sort әдісі және sorted функциясы қосымша reverse параметрін беруге болады. Егер бұл параметр True болса, сұрыптау кері ретпен жасалады, яғни элементтердің болмауы.

Python-да массивті кездейсоқ араластыру


Массивті кездейсоқ араластыру үшін ағылшын тілінде shuffle термині қолданылады, бұл орыс тілінде "араластыру"дегенді білдіреді.

Кездейсоқ араластыру міндеті соншалықты маңызды емес, өйткені бұл кездейсоқ ауыстыруды таңдауды қажет етеді.

Random кітапханасында массивті орнында араластыратын функция бар.

random.shuffle(A)

Араластырудың тағы бір нұсқасы (сұрыптау үшін кездейсоқ кілтті пайдалану):

B = sorted(yourList, key=lambda A: random.random())

Len (A) массивінің салыстырмалы түрде кішкентай ұзындықтары үшін де, А-ны ауыстырудың жалпы саны кездейсоқ сандардың ең жақсы генераторларының кезеңінен үлкен екенін түсіну керек; бұл ұзақ тізбектегі пермутациялардың көпшілігі ешқашан жасалмайтындығын білдіреді.


Python-да кортеждер

Python-да кортеждер


Кортеж — бұл өзгермейтін тізім. Кортежді оны жасағаннан кейін ешқандай жолмен өзгерту мүмкін емес.
>>> a_tuple = ("a", "b", "mpilgrim", "z", "example") (1)

>>> a_tuple

('a', 'b', 'mpilgrim', 'z', 'example')

>>> a_tuple[0] (2)

'a'

>>> a_tuple[-1] (3)

'example'

>>> a_tuple[1:3] (4)

('b', 'mpilgrim')




  1. Кортеж тізім сияқты анықталады, тек элементтер жиынтығы төртбұрышты емес, жақшада болады .


  2. Кортеж элементтері тізімдегідей белгілі бір ретпен берілген. Кортеж элементтері тізімнің элементтері сияқты нөлден индекстеледі, осылайша бос емес кортеждің бірінші элементі — бұл әрқашан a_tuple[0].


  3. Индекстің теріс мәндері тізімдегідей кортеждің соңынан есептеледі. Соңғы элемент -1 индексі бар.


  4. Кортеждің кескінін жасау ("slicing") тізім кескінін жасауға ұқсас. Тізім кесілгенде, жаңа тізім пайда болады; кортеж кесілгенде, жаңа кортеж пайда болады.


Кортеждер мен тізімдер арасындағы басты айырмашылық-кортеждерді өзгерту мүмкін емес. Іс жүзінде бұл олардың өзгеруіне мүмкіндік беретін әдістері жоқ дегенді білдіреді. Тізімдерде append (), extend (), insert (), remove () және pop () сияқты әдістер бар. Кортеждерде бұл әдістердің ешқайсысы жоқ. Сіз кортежден кесуге болады (өйткені бұл жағдайда жаңа кортеж жасалады).
# алдыңғы мысалды жалғастыру

>>> a_tuple ('a', 'b', 'mpilgrim', 'z', 'example')

>>> a_tuple.append("new") (1)

Traceback (innermost last):

File "< interactive input >", line 1, in ?

AttributeError: 'tuple' object has no attribute 'append'

>>> a_tuple.remove("z") (2)

Traceback (innermost last): File "< interactive input >", line 1, in ? AttributeError:

'tuple' object has no attribute 'remove'

>>> a_tuple.index("example") (3)

4

>>> "z" in a_tuple (4)

True

Қабықхабарламаларынаудару:
Стекті жылжыту (сыртқы және ішкі):

Файл " < интерактивті енгізу>", 1-жол, орын ?

AttributeError: объектіде'tuple' атрибуты жоқ '<атрибут>'