Junior — Middle
Чӣ тавр метавон ду массиви ба тартиб даровардашударо ба якҷоягӣ кард, бо нигоҳ доштани тартиби элементҳо?
sobes.tech AI
Ҷавоб аз AI
Барои якҷоя кардани ду массиви сартарошуда дар як массиви сартарошуда, метавон аз алгоритми ҳамҷоясозӣ, монанди он, ки дар сортировкаи ҳамҷоя (merge sort) истифода мешавад, истифода кард. Ҳикмат ин аст, ки ҳарду массивро ҳамзамон гузаред, элементҳои ҳозираро муқоиса кунед ва хурдтарини онҳоро ба массиви натиҷа илова кунед.
Масалан дар Go:
func mergeSortedArrays(a, b []int) []int {
result := make([]int, 0, len(a)+len(b))
i, j := 0, 0
for i < len(a) && j < len(b) {
if a[i] <= b[j] {
result = append(result, a[i])
i++
} else {
result = append(result, b[j])
j++
}
}
// Илова кардани элементҳои боқимонда
result = append(result, a[i:]...)
result = append(result, b[j:]...)
return result
}
Ин усул дар вақти O(n + m) кор мекунад, ки n ва m андозаи массивҳои аслӣ мебошанд.