Массив хуваах нь юу гэсэн үг вэ?
Массив хуваах нь юу гэсэн үг вэ?

Видео: Массив хуваах нь юу гэсэн үг вэ?

Видео: Массив хуваах нь юу гэсэн үг вэ?
Видео: Leetcode 561 - Массив хуваалт I (JAVA шийдлийг тайлбарлав!) 2024, Арваннэгдүгээр
Anonim

Хуваалт дахь утгууд массив . Танд асар том, асар том байж магадгүй массив объектуудын санамсаргүй дарааллаар. Та хуваахыг хүсч байна массив хоёр хэсэгт хуваагдана: доод тал нь нөхцөл байдалд тохирсон объекттой, дээд тал нь нөхцөл байдалд тохирохгүй объекттой. Энэ үйлдлийг хуваах нэг массив.

Энд Quicksort нь массивыг хэрхэн хуваах вэ?

Гол үйл явц нь хурдан эрэмбэлэх байна хуваалт (). Зорилтот хуваалтууд байна, өгсөн массив мөн x-ийн элемент массив тэнхлэгийн хувьд эрэмбэлсэн хэсэгт x atit зөв байрлалыг тавь массив бүх жижиг элементүүдийг (х-ээс бага) x-ийн өмнө, бүх том элементүүдийг (x-ээс их) x-ийн ард тавина.

Хоёрдугаарт, Quicksort хуваалт хэрхэн ажилладаг вэ? The хурдан ангилах алгоритм нь цэг сонгох замаар цуглуулгыг эрэмбэлдэг эрэмбэлэх алгоритм бөгөөд хуваах тэнхлэгийн эргэн тойрон дахь цуглуулга, ингэснээр тэнхлэгээс бага элементүүд нь түүний өмнө, тэнхлэгээс том элементүүд нь түүний ард байрладаг.

Цаашлаад асуудал хуваах гэж юуг хэлээд байна вэ?

Тооны онол, компьютерийн шинжлэх ухаанд хуваалтын асуудал , эсвэл дугаар хуваах , нь эерэг бүхэл тоонуудын өгөгдсөн олон багц S байгаа эсэхийг шийдэх даалгавар юм чадна байх хуваасан хоёр дэд бүлэгт S1 болон С2Ингэснээр S дахь тоонуудын нийлбэр1 S дахь тоонуудын нийлбэртэй тэнцүү байна2. Хэдийгээр хуваалтын асуудал нь NP-

Хамгийн хурдан эрэмбэлэх алгоритм юу вэ?

Quicksort-ийн цагийн нарийн төвөгтэй байдал нь хамгийн сайн тохиолдолд O(n log n), дундаж тохиолдолд O(nlog n), хамгийн муу тохиолдолд O(n^2) байна. Гэхдээ ихэнх оролтын хувьд энэ нь хамгийн сайн гүйцэтгэлтэй байдаг тул Quicksort нь ерөнхийдөө хамгийн хурдан ” ангилах алгоритм.

Зөвлөмж болгож буй: