Квиксорт

Квиксорт
Намена сортирање
Структура података варира
Временска компл. O(n logn) до O(n²)
Меморијска компл. O(logn) до O(n)
Стабилан не

Квиксорт (енгл. quicksort, qsort; од енгл. quick, брз, брзо; и енгл. sort, сортирање) је познат алгоритам сортирања који ради на принципу подели па владај, а развио га је Тони Хор 1960. године.

Принцип рада алгоритма

Следи опис рада алгоритма који елементе сортира у растућем поретку. Основни принцип рада алгоритма се дели у три следеће целине:

  • Изабирање пивот-елемента на датом интервалу
  • Распоред свих елемената мањих или једнаких овом пивот-елементу лево од њега, а свих већих десно од њега у низу
  • Рекурзивно понављање овог поступка на новонастале интервале лево и десно од овог пивот-елемента

Опширнији опис

Алгоритам на почетку добије низ и леву и десну границу интервала кога треба сортирати. За ове границе мора да важи да лева има мањи индекс од десне, иначе се алгоритам прекида. Унутар тог интервала, алгоритам изабере тзв. пивот-елемент, који се обично узима са његове средине или њене околине. Потом, алгоритам замењује места пивот-елемента и последњег елемента у низу (из разлога који ће бити споменут касније) и сортирање може да почне. Алгоритам пролази кроз цео задат интервал и све елементе који су мањи или једнаки том пивот-елементу слаже на прво, друго, треће итд. место у низу. Притом елементи који су се затекли на том првом, другом, трећем итд. месту замењују (енгл. swap) своја места за места нађених елемената. Елементи који се већ налазе на неком од ових места и испуњавају услов да на њему остану се не премештају.

По завршетку овог процеса, пивот-елемент са краја интервала се ставља на крај овог низа, иза задњег постављеног елемента. Тај елемент је сад на свом месту и неће бити више потребе премештати га. Због овога је на почетку и био премештен на крај — да се током размештања не би морало пратити његово место у низу те да премештање на крај буде лакше. Дати интервал је сад овим пивот-елементом подељен на два подинтервала од којих леви садржи све елементе њему мање или једнаке, а десни све оне који су од њега већи. Алгоритам се сада понавља за ова два новонастала интервала.

Процес прераспоређивања и дељења се на даљим подинтервалима понавља док се не дође до интервала дужине један или нула, у којима је елемент већ на почетку алгоритма на свом месту.

Пример

Рецимо да квиксортом треба у растућем поретку сортирати следећи низ:

2 5 11 8 7 9 1 15 16 4

Прво се изабире пивот-елемент отприлике на половини низа. У овом случају ће то бити број 9. Следи премештане свих елемената мањих или једнаких 9 на леву страну низа. Црвеном бојом биће означен пивот-елемент, а зеленом последњи елеменат низа на кога се преслажу елементи мањи или једнаки пивот-елементу.

2 5 11 8 7 9 1 15 16 4
2 5 11 8 7 4 1 15 16 9
2 5 11 8 7 4 1 15 16 9
2 5 11 8 7 4 1 15 16 9
2 5 8 11 7 4 1 15 16 9
2 5 8 7 11 4 1 15 16 9
2 5 8 7 4 11 1 15 16 9
2 5 8 7 4 1 11 15 16 9

Овде је пролазак кроз низ завршен и пивот-елемент, број 9, ће заузети своје коначно место у низу. Овакви елементи ће надаље имати плаву боју.

2 5 8 7 4 1 9 15 16 11

Према опису алгоритма, поступак се сад понавља на левом новонасталом подинтервалу. Надаље ће неки кораци бити прескочени као небитни за праћење

2 5 8 7 4 1   15 16 11
2 5 8 1 4 7   15 16 11
2 5 1 8 4 7   15 16 11
2 5 1 4 8 7   15 16 11
2 5 1 4 7 8   15 16 11

И опет на левом новонасталом подинтервалу:

2 5 1 4   8   15 16 11
2 5 4 1   8   15 16 11

Како овај пут нема елемента мањег или једнаког пивот-елементу, пивот-елемент ће доћи на прво место у подинтервалу, што значи да ће дужина левог подинтервала бити нула. Алгоритам над овим делом се сместа завршава и како исти нема даљих подела, прелази се на десни део настао приликом последње поделе: део 2, 5, 4. Надаље ће и делови проласка кроз низ (означавање зеленом бојом) бити прескакани.

1 2 5 4   8   15 16 11
  2 5 4   8   15 16 11
  2 4 5   8   15 16 11
  2 4     8   15 16 11
  2 4     8   15 16 11
  2       8   15 16 11
  2       8   15 16 11
          8   15 16 11
          8   15 16 11

Подсећање: до сада је сортиран интервал који се налази лево од првог пивот-елемента, деветке, и овако сортиран се може сложити погледом на плаве елементе у горњим листама: 1, 2, 4, 5, 7, 8 и 9 иза њега. Алгоритам сад прелази на десну страну тог првог дељења тј. десно од броја девет. За пивот-елемент се опет узима број на средини интервала.

              15 16 11
              15 11 16
              15 11 16

Но како су оба броја мања од њега, и остаје на крају интервала, где је као пивот-елемент био премештен. Следећи пивот-елемент је број 11, који завршава на почетку интервала, јер нема елемената који су му једнаки или мањи од њега.

              15 11
              11 15

А преостали број 15 се већ налази на свом месту (интервал дужине један).

                 15

Ако се погледа навише, видеће се да је овај интервал сортиран као 11, 15, 16. Што се сад може спојити са левом страном. Овај низ је сортиран:

1 2 4 5 7 8 9 11 15 16

Read other articles:

Harald Nickel Plaats uw zelfgemaakte foto hier Persoonlijke informatie Geboortedatum 21 juli 1953 Geboorteplaats Espelkamp, West-Duitsland Overlijdensdatum 4 augustus 2019 Overlijdensplaats   Positie aanvaller Senioren Seizoen Club W 0(G) 1971–19721972–19751975–19761976–19771977–19781978–19791979–19811981–1982 Arminia BielefeldKV TurnhoutUnion Sint-GillisKV KortrijkStandard LuikEintracht BraunschweigBor. MönchengladbachFC Basel 500(0)880(43)300(22)320(14)320(23)270(16)65...

 

حجر-ورق-مقصرسم بياني توضح كيفية التغلب على أحد العناصر الثلاثةمعلومات عامةالنوع لعبة متزامنة — مجموع صفري — Sansukumi-ken (en) تعديل - تعديل مصدري - تعديل ويكي بيانات حَجر-وَرق-مِقص (ربّما بترتيب مغاير فيُقال «حجر ورقة مقص» أو «ورق مقص حجر» إلخ) هي ملاعبة يدويّة بين شخصيْن، تكون بأن

 

Wappen Deutschlandkarte ? Hilfe zu Wappen 51.28333333333311.216666666667Koordinaten: 51° 17′ N, 11° 13′ O Basisdaten (Stand 2019) Bestandszeitraum: 1993–2019 Bundesland: Thüringen Landkreis: Kyffhäuserkreis Fläche: 113,69 km2 Einwohner: 7224 (31. Dez. 2017) Bevölkerungsdichte: 64 Einwohner je km2 Kfz-Kennzeichen: KYF, ART, SDH Verbandsschlüssel: 16 0 65 5001 Verbandsgliederung: 8 Gemeinden Adresse der Verbandsverwaltung: Am Ba...

罗马帝国土地的分割第四次十字軍東征之後拜占庭帝國的實際瓜分條文第四次十字軍東征期間的洗劫君士坦丁堡簽署日1204年 (1204)簽署地點拉丁帝國君士坦丁堡(現為土耳其伊斯坦布爾)簽署者 拉丁帝國  威尼斯共和國 罗马帝国土地的分割(拉丁語:Partitio terrarum imperii Romane),或希臘王國的分割(拉丁語:Partitio regni Graeci )是1204年第四次十字軍東征洗劫拜占庭首都...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Februari 2023. Berkas:LiveLine System.jpgLiveLine System. Berkas:Imagerollover pointers 4.jpg Sportvision adalah sebuah perusahaan swasta yang menyediakan berbagai perangkat tambahan menonton televisi ke sejumlah acara olahraga profesional yang berbeda. Mereka beker...

 

Expo 2010 Expo 2010 logo Hanzi tradisional: 中國2010年上海世界博覽會 Hanzi sederhana: 中国2010年上海世界博览会 Alih aksara Mandarin - Hanyu Pinyin: Zhōngguó 2010 Nián Shànghǎi Shìjìe Bólǎnhuì Yue (Kantonis) - Jyutping: soeng6hoi2 sai3gaai3 bok3laam5wui6*2 nama alternatif Hanzi tradisional: 上海世博會 Hanzi sederhana: 上海世博会 Alih aksara Mandarin - Hanyu Pinyin: Shànghǎi Shìbóhuì Yue (Kantonis) - Jyutping: soeng6hoi2 sai3bok3wui6*2 Expo 2010 atau...

Dutch futurologist This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Fred Polak – news · newspapers · books · scholar · JSTOR (September 2020) Fred Polak (1970) Frederik Lodewijk Polak (21 May 1907, in Amsterdam – 17 September 1985, in Wassenaar) was one of the Dutch founding fathers of futures stu...

 

Британский танк-паровоз типа 1-2-0 Тип 1-2-0 — паровоз с двумя движущими осями в одной жёсткой раме и с одной бегунковой осью. Другие методы записи: Американский — 2-4-0 Французский — 120 Германский — 1B Примеры паровозов Маломощные товарные, а позже — пассажирские ...

 

1503 Spanish-French military conflict Battle of RuvoPart of the Third Italian WarDate23 February 1503LocationRuvo (present-day Italy)Result Spanish victoryBelligerents Kingdom of France SpainCommanders and leaders Jacques de la Palice Gonzalo Fernández de CórdobaDiego de MendozaStrength 300 lances300 foot-soldiers[1] 400 foot-soldiers600 horsemen1,300 soldiers[2] vteItalian Wars 1494–1498 1499–1504 League of Cambrai Urbino 1521–1526 League of Cognac 1536–1538 1542–...

1997 Italian filmA Night in TuscanyDirected byDavid AmphlettStarringAndrea BocelliDistributed byPhilipsRelease date 10 November 1997 (1997-11-10) Running time86 minutesCountryItalyLanguageItalian A Night in Tuscany is the first DVD released by Italian singer Andrea Bocelli of a concert which took place at the Piazza dei Cavalieri in Pisa in 1997. The concert includes duets with soprano Nuccia Focile, Italian rock star Zucchero, and English soprano Sarah Brightman.[1] Th...

 

American diplomat John Thomas McCarthy1988, rightPersonal detailsBorn (1939-12-27) December 27, 1939 (age 83)New York CityAlma materManhattan CollegeHarvard University John Thomas McCarthy (born December 27, 1939)[1] was the United States Ambassador to Lebanon and Tunisia.[2] McCarthy holds degrees from Manhattan College and Harvard University. Prior to his appointment as ambassador, he was Deputy Assistant Secretary of State for Public Affairs.[2] References ^ No...

 

Sports television network in Boston, U.S. Television channel NBC Sports BostonCountryUnited StatesBroadcast areaMassachusettsNorthern ConnecticutVermontMaineNew HampshireRhode IslandNationwide (via satellite)NetworkNBC Sports Regional NetworksHeadquartersNeedham, Massachusetts, U.S.ProgrammingLanguage(s)EnglishPicture format1080i HDTV(downscaled to letterboxed 480i for the SDTV feed)OwnershipOwnerNBC Sports Group (80%)Boston Celtics (20%)[1]Sister channelsNew England Cable NewsWNEUWBT...

Historic cinema venue in North Hobart, Tasmania, Australia State CinemaNorth Hobart Picture Palace, Liberty Theatre, State TheatreThe State Cinema in 2022Address375 Elizabeth Street,North Hobart, TasmaniaAustraliaCoordinates42°52′20.75″S 147°18′53.03″E / 42.8724306°S 147.3147306°E / -42.8724306; 147.3147306OwnerJohn KellyCapacity700, 11 screensCurrent usecinemaOpened2 October 1913; 110 years ago (1913-10-02)Years active1913–1920, 1935–...

 

Pine Point ParkTypePublic ParkLocationToronto, OntarioOperated byCity of TorontoThis article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Pine Point Park – news · newspapers · books · scholar · JSTOR (February 2021) (Learn how and when to remove this template message) Pine Point Park is a park in Toronto, Ontario...

 

Character in Twelfth Night Fictional character OliviaTwelfth Night characterOlivia in mourningCreated byWilliam Shakespeare Olivia is a fictional character from William Shakespeare's play Twelfth Night, believed to have been written around 1600 or 1601. She is at the centre of the various plots, both the comedic and the romantic. She has various suitors. Background Olivia is a beautiful lady of noble birth who lives in Illyria. Before the play begins, she lost her brother, her guardian, after...

1967 Glasgow Pollok by-election ← 1966 9 March 1967 1970 → Glasgow Pollok constituency   First party Second party Third party   Candidate Esmond Wright Dick Douglas George Leslie Party Conservative Labour SNP Popular vote 14,270 12,069 10,884 Percentage 36.9% 31.2% 28.2% Swing 10.6% 21.2% New Map showing the Glasgow Pollok Parliamentary constituency within Scotland. MP before election Alex Garrow Labour Subsequent MP Esmond Wright Conservative The Glasgow ...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Tianjin cuisine – news · newspapers · books · scholar · JSTOR (November 2014) (Learn how and when to remove this template message) Tianjin cuisineChinese天津菜TranscriptionsStandard MandarinHanyu PinyinTiānjīn càiJin cuisineChinese津菜TranscriptionsStan...

 

ג'סי מרטיןJesse Martinאין תמונה חופשית לידה 1 במרץ 1877לונדון, ארקנסו, ארצות הברית פטירה 22 בינואר 1915 (בגיל 37) מדינה ארצות הברית ארצות הברית מפלגה המפלגה הדמוקרטית מושל ארקנסו בפועל 11 בינואר 1909 – 14 בינואר 1909(4 ימים) → קסנופון אוברטון פינדול (מושל בפועל)ג'ורג' וושינגטון דונגי ← ג'סי מ. מ...

Dutch country pop artist (born 1953) This article's use of external links may not follow Wikipedia's policies or guidelines. Please improve this article by removing excessive or inappropriate external links, and converting useful links where appropriate into footnote references. (December 2023) (Learn how and when to remove this template message) This article contains too many pictures for its overall length. Relevant discussion may be found on the talk page. Please improve this article by re...

 

性书大亨The People vs. Larry Flynt电影海报基本资料导演米洛斯·福尔曼监制奥利弗·斯通简尼特·杨(Janet Yang)迈克尔·豪斯曼(英语:Michael Hausman)编剧斯科特·亚历山大拉里·卡拉久斯基主演伍迪·哈里森科特妮·洛芙爱德华·诺顿理查德·保罗(英语:Richard Paul)詹姆斯·克伦威尔唐娜·汉诺瓦(英语:Donna Hanover)克利斯丁·格拉夫文森特·斯卡维利(英语:Vincent Schiavelli)配...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!