Thuật toán sắp xếp

Trong khoa học máy tính và trong toán học, thuật toán sắp xếp là một thuật toán sắp xếp các phần tử của một danh sách (hoặc một mảng) theo thứ tự (tăng hoặc giảm). Người ta thường xét trường hợp các phần tử cần sắp xếp là các số. Bài toán sắp xếp đã được nhiều nhà khoa học quan tâm.

Phân loại thuật toán sắp xếp.

Sắp xếp ổn định

Một thuật toán sắp xếp được gọi là sắp xếp ổn định nếu sau khi tiến hành sắp xếp vị trí tương đối giữa các phần tử bằng nhau không bị thay đổi.

Sắp xếp so sánh

Một thuật toán sắp xếp được gọi là sắp xếp so sánh nếu trong quá trình thực hiện thuật toán ta tiến hành so sánh các khoá và đổi chỗ các phần tử cho nhau. Đa số các thuật toán sắp xếp dưới đây là sắp xếp so sánh, riêng sắp xếp đếm phân phối không phải là sắp xếp so sánh.

Một số thuật toán sắp xếp

Sắp xếp nổi bọt

Sắp xếp nổi bọt (bubble sort) là phương pháp sắp xếp đơn giản, dễ hiểu thường được dạy trong khoa học máy tính. Giải thuật bắt đầu từ đầu của tập dữ liệu. Nó so sánh hai phần tử đầu, nếu phần tử đứng trước lớn hơn phần tử đứng sau thì đổi chỗ chúng cho nhau. Tiếp tục làm như vậy với cặp phần tử tiếp theo cho đến cuối tập hợp dữ liệu. Sau đó nó quay lại với hai phần tử đầu cho đến khi không còn cần phải đổi chỗ nữa.

Sắp xếp chèn

Sắp xếp chèn (insertion sort) là thuật toán sắp xếp xử lý chèn phần tử đang xét vào vị trí thích hợp của dãy số đã sắp xếp phía trước sao cho dãy số vẫn là dãy sắp xếp có thứ tự.

Sắp xếp chọn

Sắp xếp chọn (selection sort) là phương pháp sắp xếp bằng cách chọn phần tử bé nhất xếp vào vị trí thứ nhất, tương tự với các phần tử nhỏ thứ hai, thứ ba,...

Sắp xếp trộn

Sắp xếp trộn (merge sort) cùng với sắp xếp nhanh là hai thuật toán sắp xếp dựa vào tư tưởng "chia để trị" (divide and conquer). Thủ tục cơ bản là việc trộn hai danh sách đã được sắp xếp vào một danh sách mới theo thứ tự. Nó có thể bắt đầu trộn bằng cách so sánh hai phần tử một (chẳng hạn phần tử thứ nhất với phần tử thứ hai, sau đó thứ ba với thứ tư...) và sau khi kết thúc bước 1 nó chuyển sang bước 2. Ở bước 2 nó trộn các danh sách hai phần tử thành các danh sách bốn phần tử. Cứ như vậy cho đến khi hai danh sách cuối cùng được trộn thành một.

Sắp xếp vun đống

Sắp xếp vun đống (heapsort) là một trong các phương pháp sắp xếp chọn. Ở mỗi bước của sắp xếp chọn ta chọn phần tử lớn nhất (hoặc nhỏ nhất) đặt vào cuối (hoặc đầu) danh sách, sau đó tiếp tục với phần còn lại của danh sách. Thông thường sắp xếp chọn chạy trong thời gian O(n2). Nhưng heapsort đã giảm độ phức tạp này bằng cách sử dụng một cấu trúc dữ liệu đặc biệt được gọi là đống (heap). Đống là cây nhị phân mà trọng số ở mỗi đỉnh cha lớn hơn hoặc bằng trọng số các đỉnh con của nó. Một khi danh sách dữ liệu đã được vun thành đống, gốc của nó là phần tử lớn nhất, thuật toán sẽ giải phóng nó khỏi đống để đặt vào cuối danh sách. Sắp xếp vun đống chạy trong thời gian O(n log n).

Sắp xếp nhanh

Sắp xếp nhanh (quicksort) là một thuật toán theo tư tưởng chia để trị, nó dựa trên thủ tục phân chia như sau: để chia một dãy ta chọn một phần tử được gọi là "chốt" (pivot), chuyển tất cả các phần tử nhỏ hơn chốt về trước chốt, chuyển tất cả các phần tử lớn hơn chốt về sau nó(nếu sắp xếp theo dãy theo thứ tự tăng dần), nếu sắp xếp dãy theo thứ tự giảm dần ta chuyển tất cả các phần tử nhỏ hơn chốt về bên phải chốt và lớn hơn chốt về bên trái chốt. Thủ tục này có thể thực hiện trong thời gian tuyến tính. Tiếp tục phân chia các dãy con đó như trên cho đến khi các dãy con chỉ còn một phần tử.

Điểm khác biệt giữa sắp xếp nhanh và sắp xếp trộn là trong sắp xếp trộn việc xác định thứ tự được xác định khi "trộn", tức là trong khâu tổng hợp lời giải sau khi các bài toán con đã được giải, còn sắp xếp nhanh đã quan tâm đến thứ tự các phần tử khi phân chia một danh sách thành hai danh sách con.

Ngoài ra còn nhiều giải thuật sắp xếp khác, trong đó nhiều giải thuật sắp xếp được cải tiến từ các giải thuật trên. Trong sau giải thuật liệt kê trên, ta thường coi các giải thuật chèn, chọn, nổi bọt là các giải thuật cơ bản, độ phức tạp trong trường hợp trung bình của chúng là . Ba giải thuật còn lại thường được coi là giải thuật cao cấp, độ phức tạp tính toán trung bình của chúng là .

Sắp xếp theo cơ số

Sắp xếp theo cơ số (radix sort) dựa trên tính chất "số" của các khóa. Trong giải thuật sắp xếp theo cơ số, ta không chỉ so sánh giá trị của các khóa, mà so sánh các thành phần của khóa. Giả sử các khóa là các số biểu diễn theo hệ ghi số cơ số M. Khi đó sắp xếp theo cơ số sẽ so sánh từng k

Chúng ta mô tả cách sắp này khi cơ số M=10. Giả sử phải sắp các hồ sơ đánh số bởi 3 chữ số thập phân. Đầu tiên ta chia các hồ sơ vào các đống có cùng chữ số hàng trăm (đồng thới xếp các đống theo thứ tự của chữ số hàng trăm), trong mỗi đống con lại phân chia theo chữ số hàng chục, cuối cùng trong mỗi đống có cùng chữ số hàng trăm và hàng chục, sắp xếp theo thứ tự của chữ số hàng đơn vị.

Trong máy tính, đương nhiên việc sắp xếp theo cơ số nhị phân (cơ số 2) hoặc cơ số là lũy thừa của 2 là thuận lợi nhất. Trong trường hợp cơ số 2, việc phân hoạch tương tự như phân hoạch trong Quick Sort, chỉ khác ở chỗ cách chọn phần tử chốt.

Sắp xếp đếm phân phối

Sắp xếp đếm phân phối là phương pháp sắp xếp có độ phức tạp tuyến tính trong trường hợp các khóa nhận hữu hạn giá trị trong khoảng cho trước. Để đơn giản ta giả sử các phần tử của danh sách nhận các giá trị tự nhiên trong khoảng

Sắp xếp đếm phân phối đầu tiên đếm các phần tử thuộc danh sách nhận giá trị k với . Các giá trị đếm được ghi vào mảng . Sau đó khi duyệt theo k từ 1 đến M, ta lần lượt xếp phần tử của vào danh sách .

Shell Sort

Shell sort là một giải thuật sắp xếp mang lại hiệu quả cao dựa trên giải thuật sắp xếp chèn (Insertion Sort). Giải thuật này tránh được các trường hợp phải tráo đổi vị trí của hai phần tử xa nhau trong giải thuật sắp xếp chọn. (nếu như phần tử nhỏ hơn ở vị trí bên phải khá xa so với phần tử lớn hơn ở vị trí bên trái)

Tham khảo

Read other articles:

Stadium in Brockton, Massachusetts, US Campanelli StadiumCampanelli StadiumLocation within MassachusettsShow map of MassachusettsCampanelli StadiumCampanelli Stadium (the United States)Show map of the United StatesAddress1 Feinberg WayBrockton, MA 02301Coordinates42°04′09.61″N 71°02′33.69″W / 42.0693361°N 71.0426917°W / 42.0693361; -71.0426917Public transitBrockton Area Transit Authority (bus)OperatorBrockton RoxCapacity4,750Field sizeLeft field: 320 f...

 

Variety of grape RoussanneGrape (Vitis)Roussanne in Viala & VermorelColor of berry skinBlancSpeciesVitis viniferaAlso calledRoussanne Blanc, Bergeron and other synonymsOriginFranceNotable regionsRhôneNotable winesChâteau Beaucastel Châteauneuf-du-Pape Blanc Vieilles VignesVIVC number10258 Roussanne is a white wine grape grown originally in the Rhône wine region in France, where it is often blended with Marsanne. It is the only other white variety, besides Marsanne, allowed in the nort...

 

Pour les articles homonymes, voir Saint-Sébastien. Cet article est une ébauche concernant une commune de la Creuse. Vous pouvez partager vos connaissances en l’améliorant (comment ?). Le bandeau {{ébauche}} peut être enlevé et l’article évalué comme étant au stade « Bon début » quand il comporte assez de renseignements encyclopédiques concernant la commune. Si vous avez un doute, l’atelier de lecture du projet Communes de France est à votre disposition pour...

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Bulu Cina, Hamparan Perak, Deli Serdang – berita · surat kabar · buku · cendekiawan · JSTOR Bulu CinaDesaNegara IndonesiaProvinsiSumatera UtaraKabupatenDeli SerdangKecamatanHamparan PerakKode pos203...

 

2015 action-adventure game 2015 video gameJust Cause 3Developer(s)Avalanche StudiosPublisher(s)Square Enix EuropeDirector(s)Roland LesterlinProducer(s)Adam DavidsonBill PodurgielDesigner(s)Francesco AntoliniProgrammer(s)Andrew YountArtist(s)Zach SchläppiWriter(s)Nathaniel BryanPatrick DownsKatie ElwoodBenjamin JaekleJoe LaurinoRoland LesterlinGreg OrlandoOmar ShakirMike VarleyComposer(s)Henry JackmanSeriesJust CausePlatform(s)PlayStation 4WindowsXbox OneRelease1 December 2015Genre(s)Action-a...

 

Шалфей обыкновенный Научная классификация Домен:ЭукариотыЦарство:РастенияКлада:Цветковые растенияКлада:ЭвдикотыКлада:СуперастеридыКлада:АстеридыКлада:ЛамиидыПорядок:ЯсноткоцветныеСемейство:ЯснотковыеРод:ШалфейВид:Шалфей обыкновенный Международное научное наз...

В Википедии есть статьи о других людях с такой фамилией, см. Боярский. Иосиф Боярский Дата рождения 25 октября (7 ноября) 1917(1917-11-07) Место рождения Москва, РСФСР Дата смерти 12 марта 2008(2008-03-12) (90 лет) Место смерти Москва, Россия Гражданство  РСФСР СССР Россия П�...

 

† Египтопитек Реконструкция внешнего вида египтопитека Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:Четвероно...

 

Orchard ParktownOrchard Park, New York Orchard Park – Veduta LocalizzazioneStato Stati Uniti Stato federato New York ConteaErie TerritorioCoordinate42°46′00.12″N 78°43′59.88″W / 42.7667°N 78.7333°W42.7667; -78.7333 (Orchard Park)Coordinate: 42°46′00.12″N 78°43′59.88″W / 42.7667°N 78.7333°W42.7667; -78.7333 (Orchard Park) Altitudine264 m s.l.m. Superficie100 km² Abitanti29 054 (1-7-2010) Densità290,54...

Public university in Wuhan, Hubei, China Not to be confused with Hebei University.Hubei University湖北大学Motto日思日睿 笃志笃行TypePublicEstablished1931LocationWuhan, Hubei, ChinaCampusUrban, 1,800 mu (1.2 km2)Websitewww.hubu.edu.cn Hubei University (湖北大学) is a public university in Wuhan, Hubei, China. The institute was founded in 1931 as Hubei Provincial Education College. The college moved between locations and changed its name several times during its half-century of d...

 

此條目可参照英語維基百科相應條目来扩充。 (2021年5月6日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。 约翰斯顿环礁Kalama Atoll 美國本土外小島嶼 Johnston Atoll 旗幟颂歌:《星條旗》The Star-Spangled Banner約翰斯頓環礁�...

 

Untuk komponis Amerika Serikat, lihat Barton McLean. Barton MacLaneMacLane pada 1961Lahir(1902-12-25)25 Desember 1902Columbia, South Carolina, Amerika SerikatMeninggal1 Januari 1969(1969-01-01) (umur 66)Santa Monica, California, Amerika SerikatMakamValhalla Memorial Park Cemetery, North HollywoodAlmamaterUniversitas WesleyanAmerican Academy of Dramatic ArtsPekerjaanPemeran, pengarang drama, penulis naskahTahun aktif1926–1969Suami/istriCharlotte Wynters MacLane ​ ​&...

Sporting event delegationIndia at the1948 Summer OlympicsIOC codeINDNOCIndian Olympic AssociationWebsiteolympic.ind.inin LondonCompetitors79 (all men) in 10 sportsMedalsRanked 22nd Gold 1 Silver 0 Bronze 0 Total 1 Summer Olympics appearances (overview)19001904–19121920192419281932193619481952195619601964196819721976198019841988199219962000200420082012201620202024 India competed at the 1948 Summer Olympics in Wembley Park, London, England. 79 competitors, all men, took part in 39 events in ...

 

King's College Chapel, Cambridge Church of St Mary the Virgin, Burwell, Cambridgeshire Old Court, Queens' College, Cambridge Reginald Ely or Reynold of Ely (fl. 1438–1471) was an English master mason and architect working in Gothic architecture in the Kingdom of England in the 15th century.[1][2] He must be regarded as one of the greatest C15 English architects for his contribution to King's College Chapel, Cambridge - one of the most salient examples of the Perpendicular s...

 

Human settlement in EnglandHemingford GreySt James' Parish Church, Hemingford GreyHemingford GreyLocation within CambridgeshirePopulation2,524 [1] 2,532 (2011 Census)OS grid referenceTL293706DistrictHuntingdonshireShire countyCambridgeshireRegionEastCountryEnglandSovereign stateUnited KingdomPost townHuntingdonPostcode districtPE28Dialling code01480PoliceCambridgeshireFireCambridgeshireAmbulanceEast of England UK ParliamentHuntingdon List of pl...

American musician (1958–2016) This article is about the American singer and musician. For other uses, see Prince (disambiguation). PrincePrince in 1981BornPrince Rogers Nelson(1958-06-07)June 7, 1958Minneapolis, MinnesotaDiedApril 21, 2016(2016-04-21) (aged 57)Chanhassen, MinnesotaCause of deathAccidental fentanyl overdoseOther names The Artist (Formerly Known as Prince) (TAFKAP) Camille Occupations Singer songwriter musician record producer actor Years active1975–2016...

 

1997 Canadian filmThe PeacekeeperTheatrical release posterDirected byFrédéric ForestierWritten byRobert GeoffrionStewart HardingProduced byNicolas ClermontStarringDolph LundgrenMichael SarrazinMontel WilliamsRoy ScheiderCinematographyJohn BerrieEdited byYves LangloisMusic byFrançois ForestierDistributed byOctober FilmsRelease date December 12, 1997 (1997-12-12) Running time98 minutesCountriesCanadaUnited StatesLanguageEnglishBudget$16 million[1] The Peacekeeper is a ...

 

2002 novel by Éric-Emmanuel Schmitt Oscar and the Lady in Pink Oscar and the Lady in Pink on theatre.AuthorÉric-Emmanuel SchmittOriginal titleOscar et la dame roseLanguageFrenchSeriesCycle de l'invisibleGenreDramaPublished2002 (French)Publication placeFrancePages100 Oscar and the Lady in Pink (French: Oscar et la dame rose) is a novel written by Éric-Emmanuel Schmitt, the third part of the series « Cycle de l'invisible », published in 2002. It was adapted into a theatre pr...

The myogenic mechanism is how arteries and arterioles react to an increase or decrease of blood pressure to keep the blood flow constant within the blood vessel. Myogenic response refers to a contraction initiated by the myocyte itself instead of an outside occurrence or stimulus such as nerve innervation. Most often observed in (although not necessarily restricted to) smaller resistance arteries, this 'basal' myogenic tone may be useful in the regulation of organ blood flow and peripheral re...

 

Politics of Malta Republic Constitution President (list) George Vella Government Prime Minister (list) Robert Abela Deputy Prime Minister (list) Chris Fearne Cabinet (current) Parliament Speaker (list) Angelo Farrugia Deputy Speaker (list) David Agius Leader of the House (list) Owen Bonnici Leader of the Opposition (list) Bernard Grech Judiciary Chief Justice (list) Mark Chetcuti Law Courts and Tribunals Commission for theAdministration of Justice Political parties Labour Party Nationalist P...