欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS之数组的排序(升序、降序及乱序)

程序员文章站 2023-10-06 11:22:32
#pragma mark -- 数组排序方法(升序) - (void)arraysortasc{ //数组排序 //定义一个数字数组 nsarray *array = @...
#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);

}