objective-c - Objective C 中的桶排序实现

标签 objective-c algorithm sorting bucket-sort

我一直在 Objective-C 中实现不同的排序算法(快速排序、归并排序、冒泡排序)。但是我还没有找到桶排序算法的明确实现

我正试图在 Objective-C 中找到桶排序算法的简单而有效的实现。

最佳答案

最后我自己做了,如果有人需要的话,这是我的实现:

- (NSArray*)bucketSort:(NSArray<NSNumber*> *)array buckets:(NSInteger)k {

    // Initialize array of buckets
    NSMutableArray<NSMutableArray*> *buckets = [NSMutableArray arrayWithCapacity:k];
    for (int i=0; i < buckets.count; i++)
        buckets[i] = [NSMutableArray new];

    // Add elements to buckets
    for (int i=0; i < buckets.count; i++) {
        NSInteger index = k * array[i].floatValue; // Asuming "array" has values between 0 and 1
        if (index < buckets.count) [buckets[index] addObject:array[i]];
    }

    NSMutableArray *sortedArray = [NSMutableArray new];

    // Sort individual buckets
    // Concatenate all sorted buckets in order
    for (int i=0; i < buckets.count; i++) {
        buckets[i] = [self quickSort:buckets[i]]; // Sorting algorithm like quicksort/mergesort/insertionsort
        [sortedArray addObjectsFromArray:buckets[i]];
    }

    return sortedArray;
}

关于objective-c - Objective C 中的桶排序实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47659254/

相关文章:

java - 为什么乘法比开平方快很多倍?

c# - LINQ 按子对象排序列表,可能为空引用

没有堆栈和递归,可以用C实现快速排序吗?

ios - UIImages 的内存泄漏

ios - 我如何从照片库中获取最后一张照片的路径?

java - 大小为 N 的给定数组之间有 k 个空格的 n 个数字的最小总和

algorithm - 保证边不属于最小生成树

python - 按字典值对字典列表进行排序

objective-c - NSWindow,按下 ENTER 键 : how to limit the key listening to the focused NSControl?

iphone - Cocos 2d 和 Game Center(排行榜问题)