iOS-数组排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS-数组排序相关的知识,希望对你有一定的参考价值。
参考技术A 首先提供一些排序文章供大家参考学习常用排序算法总结
ios-八大基本排序
Sort 各类算法和时间复杂度分析
关于iOS中,我们有自己的"sort”尚方宝剑,主要涉及的有NSComparisonResult和compare
NSComparisonResult 是一个枚举类型里面包含三个值
NSOrderedAscending = -1L,表示两个比较的对象前者小于后置
NSOrderedSame, 表示比较的对象相等
NSOrderedDescending表示两个比较的对象前者大于后者
字符串比较大小的函数,返回NSComparisonResult
数组排序方法(升序)
数组排序方法
数组排序方法(乱序)
单关键字排序
多关键字排序
其中ascending为YES表示升序排列
详细也可看这篇文章分享 iOS浅析排序规则描述类: NSSortDescriptor
iOS之数组的排序(升序降序及乱序)
#pragma mark -- 数组排序方法(升序)
- (void)arraySortASC{
//数组排序
//定义一个数字数组
NSArray *array = @[@(3),@(4),@(2),@(1)];
//对数组进行排序
NSArray *result = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
NSLog(@"%@~%@",obj1,obj2); //3~4 2~1 3~1 3~2
return [obj1 compare:obj2]; //升序
}];
NSLog(@"result=%@",result);
}
#pragma mark -- 数组排序方法(降序)
- (void)arraySortDESC{
//数组排序
//定义一个数字数组
NSArray *array = @[@(3),@(4),@(2),@(1)];
//对数组进行排序
NSArray *result = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
NSLog(@"%@~%@",obj1,obj2); //3~4 2~1 3~1 3~2
return [obj2 compare:obj1]; //降序
}];
NSLog(@"result=%@",result);
}
#pragma mark -- 数组排序方法(乱序)
- (void)arraySortBreak{
//数组排序
//定义一个数字数组
NSArray *array = @[@(3),@(4),@(2),@(1),@(5),@(6),@(0)];
//对数组进行排序
NSArray *result = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
NSLog(@"%@~%@",obj1,obj2);
//乱序
if (arc4random_uniform(2) == 0) {
return [obj2 compare:obj1]; //降序
}
else{
return [obj1 compare:obj2]; //升序
}
}];
NSLog(@"result=%@",result);
}
以上是关于iOS-数组排序的主要内容,如果未能解决你的问题,请参考以下文章
iOS小技能:对象数组按照日期分组和排序,使用块代码实现数组排序和乱序。