Sparkmoons / go-ez-tasks

1 stars 0 forks source link

Pacin в быстрой сортировке #2

Open KazikovAP opened 5 months ago

KazikovAP commented 5 months ago

Также при запуске решения быстрой сортировки выдаёт панику

Возможное решение

func quickSort(a []int) []int { if len(a) <= 1 { return a }

min := make([]int, 0)
max := make([]int, 0)
res := make([]int, 0)

pivot := a[len(a)/2]

for _, num := range a {
    if num < pivot {
        min = append(min, num)
    } else if num > pivot {
        max = append(max, num)
    }
}

res = append(res, quickSort(min)...)
for _, num := range a {
    if num == pivot {
        res = append(res, num)
    }
}
res = append(res, quickSort(max)...)

return res

}

Sparkmoons commented 5 months ago

Да, условие выхода из рекурсии добавить забыл и в конце косяк. Поправил.02.06.2024, 16:27, "Aleksey Kazikov" @.***>: Также при запуске решения быстрой сортировки выдаёт панику Возможное решение func quickSort(a []int) []int { if len(a) <= 1 { return a } min := make([]int, 0) max := make([]int, 0) res := make([]int, 0)

pivot := a[len(a)/2]

for _, num := range a { if num < pivot { min = append(min, num) } else if num > pivot { max = append(max, num) } }

res = append(res, quickSort(min)...) for _, num := range a { if num == pivot { res = append(res, num) } } res = append(res, quickSort(max)...)

return res

}

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>