MSD Radix Сортировать реализацию Swift

stevenpcurtis спросил: 07 октября 2018 в 11:35 в: swift

Попытка реализовать MSD-версию radix в Swift

func sort(_ array: [Int]) -> [Int]{
    var arr = array
    let base = 10
    var digitPosition = 10
    while (digitPosition>0) {
        var buckets = [[Int]](repeating: [], count: base)
        for number in arr {
            let remainder = number / digitPosition
            let numberDigit = remainder % base // base is 10
            buckets[numberDigit].append(number)
        }
        digitPosition /= base
        arr = buckets.flatMap {$0}
    }
    return arr
}

Для запуска сортировки введите:

sort([112,2,3,104,15])

Вот мои результаты:

[[112, 2, 3, 104, 15], [], [], [], [], [], [], [], [], []]
[[2, 3, 15], [112, 104], [], [], [], [], [], [], [], []]
[[2, 3, 104], [15, 112], [], [], [], [], [], [], [], []]
[[], [], [2, 112], [3], [104], [15], [], [], [], []]

Это неверно.

1. Как я могу добавить предыдущие 0 к целым числам в Swift

2. Как я могу удалить одно целое число корзины из последующих исполнений?


0 ответов