Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Знакомство c Visual Basic.pdf
Скачиваний:
30
Добавлен:
02.06.2015
Размер:
4.34 Mб
Скачать

7Алгоритмы сортировки

БгЯммни вкЯбд пЯррлЯспзбЯэсрю пЯжкзцмъд Яквнпзслъ рнпсзпнбйз.

7.1 Алгоритм сортировки выборкой

Џквнпзсл рнпсзпнбйз бъанпйни гнрсЯснцмн опнрс б пдЯкзжЯхзз,

нгмЯйн опз напЯансйд анкычзф нащдлнб гЯммъф двн ьуудйсзбмнрсы мдопздлкдлн рмзеЯдсрю.

Ртсы ЯквнпзслЯ жЯйкэцЯдсрю б онркдгнбЯсдкымнл онзрйд лзмзлЯкымъф ькдлдмснб зж нрсЯбчзфрю мднсрнпсзпнбЯммъф з налдм лдрсЯлз лзмзлЯкымнвн з сдйтшдвн рнпсзптдлнвн ькдлдмсЯ.

ЖЯ сдйтшзи рнпсзптдлъи ькдлдмс опзмзлЯэсрю брд ькдлдмсъ, мЯцзмЯю р одпбнвн он опдгонркдгмзи ькдлдмсъ лЯррзбЯ. Гкю йЯегнвн сдйтшдвн рнпсзптдлнвн ькдлдмсЯ нртшдрсбкюдсрю онзрй лзмзлЯкымнвн рпдгз нрсЯбчзфрю мднсрнпсзпнбЯммъф ькдлдмснб (онг нрсЯбчзлзрю мднсрнпсзпнбЯммълз жгдры онмзлЯэсрю брд ькдлдмсъ, йнснпъд пЯмдд мд аъкз опзмюсъ жЯ сдйтшзи рнпсзптдлъи ькдлдмс, сн дрсы брд ькдлдмсъ, мЯцзмЯю рн ркдгтэшдвн жЯ сдйтшзл рнпсзптдлъл он онркдгмзи ькдлдмс лЯррзбЯ).

Онзрй лзмзлЯкымнвн рпдгз нрсЯбчзфрю мднсрнпсзпнбЯммъф нртшдрсбкюдсрю ркдгтэшзл напЯжнл:

жЯ сдйтшзи лзмзлЯкымъи ькдлдмс опзмзлЯдсрю сдйтшзи рнпсзптдлъи ькдлдмс лЯррзбЯ;

жмЯцдмзд сдйтшдвн лзмзлЯкымнвн ькдлдмсЯ лЯррзбЯ онркдгнбЯсдкымн рпЯбмзбЯдсрю рн брдлз нрсЯбчзлзрю мднсрнпсзпнбЯммълз ькдлдмсЯлз лЯррзбЯ (ькдлдмсЯлз мЯцзмЯю рн ркдгтэшдвн он онркдгмзи). Дркз опз рпЯбмдмзз жмЯцдмзю сдйтшдвн лзмзлЯкымнвн ькдлдмсЯ, р йЯйзл кзан зж пЯррлЯспзбЯдлъф нйЯжъбЯдсрю, цсн сдйтшдд лзмзлЯкымнд жмЯцдмзд анкычд цдл злддс опнрлЯспзбЯдлъи мднсрнпсзпнбЯммъи ькдлдмс, снвгЯ жЯ сдйтшзи лзмзлЯкымъи ькдлдмс опзмзлЯдсрю пЯррлЯспзбЯдлъи мднсрнпсзпнбЯммъи. СЯйзл напЯжнл, онркд опнрлнспЯ брдф мднсрнпсзпнбЯммъф ькдлдмснб

сдйтшзл лзмзлЯкымъл ькдлдмснл атгдс ькдлдмс, злдэшзи

лзмзлЯкымнд жмЯцдмзд;

гЯкдд жмЯцдмзю мЯигдммнвн лзмзлЯкымнвн з сдйтшдвн рнпсзптдлнвн ькдлдмснб лдмюэсрю лдрсЯлз;

нртшдрсбкюдсрю одпдфнг й ркдгтэшдлт рнпсзптдлнлт ькдлдмст

(ркдгтэшзи ькдлдмс опзмзлЯдсрю жЯ сдйтшзи рнпсзптдлъи з гдирсбзю он напЯансйд сдйтшдвн рнпсзптдлнвн ькдлдмсЯ онбснпюэсрю).

ПЯррлнспзл рнпсзпнбйт бъанпйни гкю ркдгтэшдвн лЯррзбЯ:

[5;3;2;6;8;1].

Опз мЯцЯкд бъонкмдмзю одпбнвн опнфнгЯ б йЯцдрсбд сдйтшдвн рнпсзптдлнвн ькдлдмсЯ опзмзлЯдсрю одпбъи ькдлдмс лЯррзбЯ (ькдлдмс р змгдйрнл 1 з жмЯцдмздл 5). ГЯммъи ькдлдмс опзмзлЯдсрю жЯ сдйтшзи лзмзлЯкымъи. МЯцзмЯдсрю бъонкмдмзд онзрйЯ лзмзлЯкымнвн рпдгз нрсЯбчзфрю мднсрнпсзпнбЯммъф ькдлдмснб лЯррзбЯ. Опз онзрйд лзмзлЯкымнвн рпдгз нрсЯбчзфрю мднсрнпсзпнбЯммъф ькдлдмснб лЯррзбЯ жмЯцдмзд сдйтшдвн лзмзлЯкымнвн ькдлдмсЯ 5 рпЯбмзбЯдсрю рн жмЯцдмздл ркдгтэшдвн ькдлдмсЯ, злдэшдвн жмЯцдмзд 3. Опз ьснл ькдлдмс р змгдйрнл 2

з жмЯцдмздл 3 нйЯжъбЯдсрю лдмычзл. Б гЯммнл рктцЯд жЯ сдйтшзи

лзмзлЯкымъи ькдлдмс опзмзлЯдсрю ькдлдмс р змгдйрнл 2 з двн жмЯцдмзд гЯкдд онркдгнбЯсдкымн рпЯбмзбЯдсрю р нрсЯбчзлзрю мднсрнпсзпнбЯммълз ькдлдмсЯлз. СЯй мЯ ркдгтэшдл «чЯвд» ЯквнпзслЯ рнпсзпнбйз бъанпйни жмЯцдмзд сдйтшдвн лзмзлЯкымнвн ькдлдмсЯ рпЯбмзбЯдсрю рн жмЯцдмздл ркдгтэшдвн мднсрнпсзпнбЯммнвн ькдлдмсЯ (ькдлдмс р змгдйрнл 3 з

жмЯцдмздл 2). Нмн бмнбы нйЯжъбЯдсрю лдмычзл, цдл жмЯцдмзд сдйтшдвн лзмзлЯкымнвн ькдлдмсЯ, оньснлт жЯ сдйтшзи лзмзлЯкымъи ькдлдмс опзмзлЯдсрю ькдлдмс р лдмычзл жмЯцдмздл 2. Сд ед гдирсбзю опнзжбнгюсрю рн брдлз нрсЯбчзлзрю мднсрнпсзпнбЯммълз ькдлдмсЯлз (бъонкмзсд рЯлнрснюсдкымн гдирсбзю гкю брдф нрсЯбчзфрю мднсрнпсзпнбЯммъф ькдлдмснб). СЯйзл напЯжнл, онркд опнрлнспЯ брдф нрсЯбчзфрю мднсрнпсзпнбЯммъф ькдлдмснб сдйтшзл лзмзлЯкымъл (лзмзлЯкымъл рпдгз брдф опнрлнспдммъф) ькдлдмснб юбкюдсрю ькдлдмс р змгдйрнл 6 з жмЯцдмздл

1. ЖмЯцдмзю гЯммнвн ькдлдмсЯ з сдйтшдвн рнпсзптдлнвн лдмюэсрю лдрсЯлз

(рл. пзртмнй). Онркд бъонкмдмзю гЯммъф гдирсбзи лнемн р тбдпдммнрсыэ рйЯжЯсы, цсн рнпсзпнбйЯ гкю одпбнвн ькдлдмсЯ лЯррзбЯ жЯбдпчдмЯ з б одпбни онжзхзз лЯррзбЯ онлдшдмн жмЯцдмзд лзмзлЯкымн ькдлдмсЯ лЯррзбЯ.

ГЯкдд жЯ сдйтшзи рнпсзптдлъи ькдлдмс опзмзлЯдсрю ькдлдмс р змгдйрнл 2 з жмЯцдмздл 3, онбснпюэсрю гдирсбзю он онзрйт лзмзлЯкымнвн рпдгз нрсЯбчзфрю мднсрнпсзпнбЯммъф ькдлдмснб з мЯигдммъи лзмзлЯкымъи ькдлдмс (р змгдйрнл 3 з жмЯцдмздл 2) лдмюдсрю лдрсЯлз р сдйтшзл рнпсзптдлъл. ЖЯсдл гдирсбзю онркдгнбЯсдкымн бъонкмюэсрю рн брдлз ькдлдмсЯлз гн опдгонркдгмдвн ькдлдмсЯ лЯррзбЯ (рЯлнрснюсдкымн нсбдсысд мЯ бнопнр: онцдлт мдс мднафнгзлнрсз опзмзлЯсы жЯ сдйтшзи рнпсзптдлъи ькдлдмс онркдгмзи ькдлдмс лЯррзбЯ?).

ЖЯгЯмзд: рЯлнрснюсдкымн пЯжпЯансЯисд опзкнедмзд бъонкмюэшдд рнпсзпнбйт лЯррзбЯ жЯгЯммни онкыжнбЯсдкдл пЯжлдпмнрсз, жЯонкмдммнвн рктцЯимълз цзркЯлз зж тйЯжЯммнвн онкыжнбЯсдкдл змсдпбЯкЯ. Б нсцдсд он пЯансд опзбдгзсд зрфнгмъи йнг опзкнедмзю, опнйнллдмсзптисд гдирсбзю бъонкмюдлъд опзкнедмздл, опзбдгзсд акнй-рфдлт ЯквнпзслЯ.

7.2 Алгоритм сортировки вставкой

Џквнпзсл рнпсзпнбйз брсЯбйни сЯйед опнрс б пдЯкзжЯхзз з ьуудйсзбдм снкыйн опз напЯансйд мданкычзф лЯррзбнб гЯммъф.

Ртсы ЯквнпзслЯ жЯйкэцЯдсрю б онркдгнбЯсдкымнл зжбкдцдмзз ькдлдмснб рнпсзптдлнвн лЯррзбЯ з брсЯбйд зф б пджткысзптэшзи лЯррзб б сЯйтэ онжзхзэ, цснаъ б йЯегъи лнлдмс бпдлдмз пджткысзптэшзи лЯррзб рнгдпеЯк нсрнпсзпнбЯммъд жмЯцдмзю.

ПЯррлнспзл опзлдп зронкмдмзю ЯквнпзслЯ рнпсзпнбйз брсЯбйни лЯррзбЯ [5;3;2;6;8;1] (рл. пзртмнй).

МЯ одпбнл опнфнгд зж рнпсзптдлнвн лЯррзбЯ зжбкдйЯдсрю одпбъи ькдлдмс з онлдшЯдсрю б одпбтэ онжзхзэ пджткысзптэшдвн лЯррзбЯ. Онркд бъонкмдмзю гЯммни нодпЯхзз пджткысзптэшзи лЯррзб рнгдпезс нгзм ькдлдмс з юбкюдсрю нсрнпсзпнбЯммъл.

Опз бъонкмдмзз бснпнвн опнфнгЯ зж рнпсзптдлнвн лЯррзбЯ зжбкдйЯдсрю бснпни ькдлдмс. Б рннсбдсрсбзз р спданбЯмзюлз ЯквнпзслЯ гЯммъи ькдлдмс гнкедм аъсы брсЯбкдм б сЯйтэ онжзхзэ, цснаъ пджткысзптэшзи лЯррзб аък нсрнпсзпнбЯм. Гкю ьснвн брсЯбкюдлъи ькдлдмс рпЯбмзбЯдсрю р одпбъл ькдлдмснл пджткысзптэшдвн лЯррзбЯ. Дркз брсЯбкюдлъи ькдлдмс нйЯжъбЯдсрю лдмычзл, сн ькдлдмсъ пджткысзптэшдвн

лЯррзбЯ ргбзвЯэсрю мЯ нгмт онжзхзэ бмзж, Я нм брсЯбкюдсрю б нрбнангзбчтэрю онжзхзэ. Дркз жмЯцдмзд брсЯбкюдлнвн ькдлдмсЯ нйЯжъбЯдсрю анкычзл, цдл жмЯцдмзд одпбнвн ькдлдмсЯ, сн нртшдрсбкюдсрю одпдфнг й ркдгтэшди онжзхзз, рмнбЯ опнзжбнгзсрю рпЯбмдмзд, ргбзв ькдлдмснб зкз одпдфнг й ркдгтэшди онжзхзз гн сдф онп, онйЯ брсЯбкдммъд й сдйтшдлт лнлдмст жмЯцдмзю мд жЯйнмцЯсрю. Опз гнрсзедмзз сЯйни

(«онркдгмди») онжзхзз ькдлдмс брсЯбкюдсрю б мдд, сЯй йЯй б гЯммнл рктцЯд нм юбкюдсрю лЯйрзлЯкымъл рпдгз пЯррлнспдммъф ькдлдмснб. Б

пЯррлЯспзбЯдлнл опзлдпд бснпни ькдлдмс рнпсзптдлнвн лЯррзбЯ злддс жмЯцдмзд 3. ГЯммнд жмЯцдмзд мднафнгзлн рпЯбмзсы рн жмЯцдмздл брсЯбкдммнвн мЯ опдгъгтшдл опнфнгд ькдлдмсЯ. Бъцзркзл кнвзцдрйнд бъпЯедмзд 3<5. Двн пджткысЯс ЗРСЗМЏ. БрсЯбкюдлъи ькдлдмс злддс лдмычдд жмЯцдмзд з гнкедм аъсы пЯронкнедм б пджткысзптэшдл лЯррзбд гн ькдлдмсЯ рн жмЯцдмздл 5, ркдгнбЯсдкымн, мднафнгзлн рлдрсзсы брд пЯмдд брсЯбкдммъд ькдлдмсъ мЯ нгмт онжзхзэ бмзж, Я гЯммъи ькдлдмс брсЯбзсы б нрбнангзбчтэрю онжзхзэ. Й сдйтшдлт лнлдмст б лЯррзб аъкн брсЯбкдмн снкыйн нгмн жмЯцдмзд, сн дрсы мднафнгзлн рлдрсзсы снкыйн жмЯцдмзд 5.

Рлдшдмзд бъонкмюдсрю йнозпнбЯмздл мЯ нгмт онжзхзэ бмзж жмЯцдмзи ькдлдмснб: мЯцзмЯю р онркдгмдвн зж злдэшзфрю б сдйтшзи лнлдмс б пджткысзптэшдл лЯррзбд гн снвн ькдлдмсЯ, б онжзхзэ йнснпнвн мднафнгзлн нртшдрсбзсы брсЯбйт. Сн дрсы гкю брсЯбйз ькдлдмсЯ рн жмЯцдмздл 3 б одпбтэ онжзхзэ опзрбЯзбЯдл жмЯцдмзд дгзмрсбдммнвн пЯмдд брсЯбкдммнвн ькдлдмсЯ рн жмЯцдмздл 5 б онжзхзэ 2. ЖмЯцдмзд брсЯбкюдлнвн ькдлдмсЯ опзрбЯзбЯдл одпбнлт ькдлдмст лЯррзбЯ. Онркд бъонкмдмзю гЯммнвн опнфнгЯ б пджткысзптэшдл лЯррзбд рнгдпеЯсрю гбЯ ькдлдмсЯ 3 з 5. Пджткысзптэшзи лЯррзб юбкюдсрю нсрнпсзпнбЯммъл.

ЏмЯкнвзцмн бъонкмюэсрю ркдгтэшзд опнфнгъ:

мЯ спдсыдл опнфнгд ькдлдмс рн жмЯцдмздл 2 брсЯбкюдсрю б одпбтэ онжзхзэ, пЯмдд брсЯбкдммъд ькдлдмсъ рлдшЯэсрю мЯ нгмт онжзхзэ бмзж;