iOS自带的两个排序算法对比

对500多条消息数据排序 用如下耗时函数打印耗时...

NSDate* tmpStartData = [NSDate date];

doubledeltaTime = [[NSDatedate]timeIntervalSinceDate:tmpStartData];

NSLog(@"ssssssssssssss  cost time = %f", deltaTime);

```

//排序一

-(NSArray*)sortArrayWith:(NSArray*)arry{

NSArray* sortArry=[arry sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {

Message* model_1 = (Message*)obj1;

Message* model_2 = (Message*)obj2;

NSDate*date1 = [selfreadTimeStr:model_1.createTime];

NSDate*date2 = [selfreadTimeStr:model_2.createTime];

if( [date1timeIntervalSinceNow] < [date2timeIntervalSinceNow]) {

returnNSOrderedAscending;

}else{

returnNSOrderedDescending;

}

}];

returnsortArry;

}

耗时1.17秒 卡到爆炸

//排序二

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"createTime" ascending:YES];

NSArray *sortArray = [NSArray arrayWithObjects:descriptor,nil];

NSMutableArray* allMsgs = [allMessage sortedArrayUsingDescriptors:sortArray].mutableCopy;


耗时0.0004 流畅

总结: 第一种方法慎用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 排序规则描述类: NSSortDescriptor NSSortDescriptor来指定排序规则, 对集合等进行...
    SkyMing一C阅读 11,639评论 3 12
  • 数组可对其中包含的元素进行排序。 在排序前,我们需要定义一个Model类,将Model类对象添加至数组中。 定义一...
    SkyMing一C阅读 13,739评论 0 15
  • 面向对象三大支柱封装:就是把相关的数据和代码结合成一个有机的整体,形成数据和操作代码的封装体,对外只提供一个可以控...
    WangDavid阅读 5,869评论 0 2
  • pragma mark -- 数组排序方法(升序) (void)arraySortASC{//数组排序//定义一个...
    seventhboy阅读 3,064评论 0 0
  • 第一种,利用数组的sortedArrayUsingComparator调用 NSComparator ,obj1和...
    木马不在转阅读 13,932评论 0 5

友情链接更多精彩内容