Friday, December 17, 2010

Эрэмбэлэлт

Програм зохиох явцад эрэмбэлэх үйлдэл олонтаа тохиолддог. Эрэмбэлэлт нь өгөгдлүүдийг тодорхой дарааллаар (өсөхөөр эсвэл буурахаар) зохион байгуулах үйлдэл юм. Жишээлбэл,
A1<=A2<=A3<=...<=An, B1>=B2>=B3>=...>=Bn дарааллуудын хувьд A дараалал нь өсөхөөр, B дараалал нь буурахаар эрэмбэлэгдсэн дараалал байна. Хэрэв дурын дараалсан хоёр гишүүний хувьд < (эрс их), > (эрс бага) нөхцөлүүд биелэгдэж байвал харгалзан монотон өсөх, монотон буурах дараалал гэж нэрлэнэ. Өмнөх тохиолдолд (<=, >= нөхцөлүүд биелэх) монотон үл буурах, монотон үл өсөх дараалал болно. Эдгээрийн аль аль нь эрэмбэлэгдсэн дарааллын тохиолдол юм. Эрэмбэлэгдсэн өгөгдөл нь хайлтын процессыг хурдасгах ач холбогдолтой. 30 оюутантай ангийн журналаас Дорж гэдэг оюутны ирцийг харах шаардлага гарсан байг. Хэрэв оюутнуудын нэрс нь санамсаргүйгээр бичигдсэн бол бүх оюутнуудыг нэрийг эхнээс нь эхэлж унших шаардлага гарна. Харин эрэмбэлэгдсэн тохиолдолд Д-с өмнөх үсгүүдээр эхэлсэн нэртэй оюутнуудын нэрийг унших шаардлагагүй. Зөвхөн эхний үсгийг хараад л алгасаж явна.
Эрэмбэлэх маш олон аргууд байдаг. Энгийн, хүндэвтэр эрэмбэлэлтийн эрэмбэлэлтийн аргууд гэж ерөнхийд нь 2 ангилж болно.
Энгийн эрэмбэлэх аргууд:
- Сонгон эрэмбэлэх арга (Selection Sort)
- Оруулан эрэмбэлэх арга (Insertion Sort)
- Бөмбөглөн эрэмбэлэх арга (Bubble Sort)
- Индексээр эрэмбэлэх арга (Index Sort)
- Shell-ийн арга
Хүндэвтэр эрэмбэлэлтийн аргууд:
- Хурдан эрэмбэлэлтийн арга (Quick Sort)
- Сууриар эрэмбэлэх арга (Radix Sort)
- Хоёртын хайлтын модоор эрэмбэлэх (Binary Sort)
- Heap
- Нийлүүлэн эрэмбэлэх арга (Merge Sort)
зэрэг аргууд байдаг. Эдгээрээс гадна зарим програмчлалын хэлэнд шууд өөрөө эрэмбэлдэг сан, функцууд байдаг. Ж, С/C++ хэлний algorithm.h сангийн sort() функц нтр.
Эдгээр аргуудыг дараа нэг нэгээр нь тайлбарлаж, бодолтыг нь тавьж өгмой.
Мартсанаас эрэмбэлэлт нь амьдралд голдуу 1 эсвэл 2 хэмжээст хүснэгтэн дээр хийгдэнэ.

14 comments:

  1. english -eer bicheed orchuulaad tavichuul mash ih hereg boloh bh gej bodjiin tgd oor huuhduudiin bodol yamar bhin medehgui nadaa lav angliar bijeed door n orjuulaad bijjuul heregtei ym shg bna.

    ReplyDelete
  2. Мэргэжлийн англи хэлний орчуулгын бие даалтанд ашиглах гэж байгаа юм уу :D

    ReplyDelete
  3. shell sort iin talaar baival tavij tuslaach

    ReplyDelete
    Replies
    1. Окэй, маргааш тавьж өгье.

      Delete
    2. bayrlaaa jooohn ih bsn bol hehe :p add hiicheiree thend_123@yahoo.com

      Delete
  4. hzee neg negeer n tailbarlaj oruulah ve (zunduu ih heregtei bn :P :D )

    ReplyDelete
    Replies
    1. Оруулсан байгаа ш дээ. Хэдэн жилийн өмнө :)

      Delete
    2. hna bnaa :P (zaagchaar erembelsen bol sain bn :P:D)

      Delete
  5. uu neeree bayrlalaa zunduu ih heregtei post bn :)

    ReplyDelete
    Replies
    1. Хэхэ. Тийм ч юм уу. Хүндэвтэр аргуудын талаар постлоогүй юм байна ш дээ. За тэрийг уншигчдад үлдээе :).

      Delete
  6. hurdan erembelehiiin tuhai iluu hrgtei bnaa

    ReplyDelete
  7. индексээр эрэмбэлэх аргын тухай оруулж өгөөч

    ReplyDelete
  8. Хүндэвтэр эрэмбэлэлтийн аргуудыг нь тус бүрт нь тайлбарлаад өгөөч :)

    ReplyDelete