本文共 922 字,大约阅读时间需要 3 分钟。
下面是Objective-C实现的mergesort归并排序算法的完整源代码:
#import @interface MergeSort : NSObject (NSArray *)mergeSortArray:(NSArray *)array { if (array.count <= 1) { return array; } NSArray *left = [self mergeSortArray:array[0...floor(array.count / 2)]]; NSArray *right = [self mergeSortArray:array[floor(array.count / 2)+1...array.count]]; return [self mergeTwoSortedArrays:left : right]; } (NSArray *)mergeTwoSortedArrays:(NSArray *)left : (NSArray *)right { int i = 0, j = 0; int n = 0; if (left.count > 0) n = left.count; if (right.count > 0) n = max(n, right.count); NSMutableArray *result = [NSMutableArray new]; while (i < left.count && j < right.count) { if (left[i] <= right[j]) { [result addObject:left[i]]; i++; } else { [result addObject:right[j]]; j++; } } while (i < left.count) { [result addObject:left[i]]; i++; } while (j < right.count) { [result addObject:right[j]]; j++; } return result; } 转载地址:http://pmnfk.baihongyu.com/