Жагсаалтыг цагаан толгойн дарааллаар хэрхэн эрэмбэлэх вэ

Агуулгын хүснэгт:

Жагсаалтыг цагаан толгойн дарааллаар хэрхэн эрэмбэлэх вэ
Жагсаалтыг цагаан толгойн дарааллаар хэрхэн эрэмбэлэх вэ

Видео: Жагсаалтыг цагаан толгойн дарааллаар хэрхэн эрэмбэлэх вэ

Видео: Жагсаалтыг цагаан толгойн дарааллаар хэрхэн эрэмбэлэх вэ
Видео: Хэрхэн Gmail-ыг ашиглах вэ? | Herhen Gmail ashiglah ve? 2024, Дөрөвдүгээр сар
Anonim

Ижил төрлийн өгөгдлийн дарааллыг жагсаалт хэлбэрээр илэрхийлж болно. Жагсаалтыг захиалж, дараалалгүй захиалах боломжтой. Сүүлчийн тохиолдолд өгөгдөлтэй ажиллах, хүссэн утгыг олох, жагсаалтын элементүүдэд нэвтрэх нь тодорхой бэрхшээлийг үүсгэдэг. Мөр хувьсагчдын жагсаалтыг ихэвчлэн цагаан толгойн дагуу эрэмбэлдэг. Эрэмбэлэх олон аргууд байдаг бөгөөд тохиолдол бүрт та хамгийн оновчтой алгоритмыг сонгох хэрэгтэй.

Жагсаалтыг цагаан толгойн дарааллаар хэрхэн эрэмбэлэх вэ
Жагсаалтыг цагаан толгойн дарааллаар хэрхэн эрэмбэлэх вэ

Зааварчилгаа

1-р алхам

Хамгийн сайн ангилах аргыг сонгохдоо хоёр зүйлийг анхаарч үзэх хэрэгтэй: ялгах ажиллагаанд зарцуулсан хугацаа ба нэмэлт хадгалахад шаардагдах санах ойн хэмжээ. Нэмэлт санах ой шаарддаггүй эрэмбэлэх алгоритмуудыг "байрандаа" гэж нэрлэдэг. Хэрэгжүүлэхэд хамгийн хялбар арга бол жагсаалтын хоёр зүйл тус бүрийг сканнердаж, хүссэн дарааллаасаа хамааран байраа солих удаан хөөсөөр ангилах явдал юм.

Алхам 2

Жагсаалтаас хамгийн бага эсвэл хамгийн их зүйлийг олох замаар хурдан ялгах арга байдаг. Цагаан толгойн дарааллаар эрэмбэлэх тохиолдолд жагсаалтыг үзэх бүрт түүний хамгийн их элементийг олох хэрэгтэй - энэ нь цагаан толгойн эхэнд хамгийн ойр үсэгнээс эхлэх мөр байх болно. Олдсоны дараа мөрийг эхний дамжуулалтын жагсаалтын хамгийн эхний зүйлээр солино. Жагсаалтыг үргэлжлүүлэн авч үзэхэд эхний байрыг хасч, дараагийн хамгийн их элементийг хайж, хоёрдугаарт оруулах гэх мэт. Жагсаалтын хамгийн их элементийг олох аргаар C ++ хэл дээр ялгах програмын код: String Arr [20], cTemp; int N = 20, Max, Pos; for (int i = 0; i <N- 1; i ++) {Max = Arr ; Pos = i; for (int j = 0; j <N; j ++) {if (Arr [j] <Max) {Max = Arr [j]; Pos = j; } cTemp = Arr ; Arr = Arr [Pos]; Arr [Pos] = cTemp; }}

Алхам 3

Жагсаалтад мөрийн өгөгдлийг захиалах хамгийн оновчтой шийдэл бол оруулгын эрэмбэлэлт юм. Түүний мөн чанар нь жагсаалтыг дамжих бүрт тодорхой тооны элементийн жагсаалтын захиалсан хэсэг байдаг тул дараагийн авч үзэж буй элементийг жагсаалтын тохиромжтой газарт байрлуулна. Оруулгын ялгах алгоритмын C ++ код: String Arr [20], cTemp; int N = 20; for (int i = 1, j = 0; i <N; i ++) {cTemp = Arr ; j = i - 1; while (cTemp <Arr [j]) {Arr [j + 1] = Arr [j]; j--; хэрэв (j <0) завсарлага; Arr [j + 1] = cTemp; }}

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