func bucketSort(_ array: [Int]) -> [Int] {
    // 创建一个桶数组,桶的数量为最大值加1
    var bucket = Array(repeating: 0, count: array.max()! + 1)
    
    // 把每个元素放到对应的桶中
    for num in array {
        bucket[num] += 1
    }
    
    // 把桶中的元素按顺序取出来,组成一个新的有序数组
    var sortedArray = [Int]()
    for i in 0..<bucket.count {
        for _ in 0..<bucket[i] {
            sortedArray.append(i)
        }
    }
    
    return sortedArray
}

// 测试
let array = [5, 3, 8, 4, 2]
let sortedArray = bucketSort(array)
print(sortedArray) // [2, 3, 4, 5, 8]
请用swift实现桶排序

原文地址: https://www.cveoy.top/t/topic/fPt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录