- #pragma mark - /**归并排序 自顶向下*/
- - (void)mb_mergeSort{
- [self mb_mergeSortArray:self LeftIndex:0 rightIndex:(int)self.count - 1];
- }
- - (void)mb_mergeSortArray:(NSMutableArray *)array LeftIndex:(int )l rightIndex:(int)r{
- if(l >= r) return;
- int mid = (l + r) / 2;
- [self mb_mergeSortArray:self LeftIndex:l rightIndex:mid];
- [self mb_mergeSortArray:self LeftIndex:mid + 1 rightIndex:r];
- [self mb_mergeSortArray:self LeftIndex:l midIndex:mid rightIndex:r];
- }
- - (void)mb_mergeSortArray:(NSMutableArray *)array LeftIndex:(int )l midIndex:(int )mid rightIndex:(int )r{
- SEL func = NSSelectorFromString(@"resetSortArray:");
- // 开辟新的空间 r-l+1的空间
- NSMutableArray *aux = [NSMutableArray arrayWithCapacity:r-l+1];
- for (int i = l; i r){// 如不雅右半部分元素已经全部处理完毕
- self.comparator(nil, nil);
- self[k] = aux[i - l];
- i++;
- }else if(self.comparator(aux[i - l], aux[j - l]) == NSOrderedAscending){// 左半部分所指元素 < 右半部分所指元素
- self[k] = aux[i - l];
- i++;
- }else{
- self.comparator(nil, nil);
- self[k] = aux[j - l];
- j++;
- }
- NSMutableArray *mutArray = [NSMutableArray array];
- [self enumerateObjectsUsingBlock:^(MBBarView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
- [mutArray addObject:[NSString stringWithFormat:@
推荐阅读
上篇(25 个术语)如不雅你刚接触大年夜数据,你可能会认为这个范畴很难以懂得,无大年夜下手。不过,你可以大年夜下面这份包含了 25 个大年夜数据术语的清单入手,那么我们开端吧。算法(Algorithm):算法可以懂得>>>详细阅读
本文标题:在Object-C中学习排序算法
地址:http://www.17bianji.com/lsqh/36561.html
1/2 1
在Object-C中学习排序算法
作者: 来源: 2017-08-06 12:49:35 阅读次 我要评论
关键词: 探索发现
乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。



