Junior — Middle
Ikki tartiblangan ketma-ketlikni qanday birlashtirish mumkin, shunda natija tartibli qoladi?
sobes.tech AI
AIdan javob
Ikki tartiblangan ketma-ketlikni bir tartiblangan ketma-ketlikka birlashtirish uchun, birlashtirish (merge) algoritmidan foydalanish mumkin, u chiziqli vaqtda ishlaydi.
G'oya:
- Ikki tartiblangan massiv yoki ro'yxat mavjud.
- Har biri uchun ikki ko'rsatkichdan foydalanamiz.
- Hozirgi elementlarni solishtiramiz, kichigi natijaga qo'shiladi va mos keladigan ko'rsatkichni harakatlantiramiz.
- Ikkala massivni ham o'tguncha takrorlaymiz.
Kotlin misoli:
fun mergeSortedLists(a: List<Int>, b: List<Int>): List<Int> {
val result = mutableListOf<Int>()
var i = 0
var j = 0
while (i < a.size && j < b.size) {
if (a[i] <= b[j]) {
result.add(a[i])
i++
} else {
result.add(b[j])
j++
}
}
// Qolgan elementlarni qo'shish
while (i < a.size) result.add(a[i++])
while (j < b.size) result.add(b[j++])
return result
}