iOS数组快速排序

欢迎访问我的新博客: 开发者说

对数组元素排序是使用任何编程语言都会遇到的一个问题,其中大部分已经提供了一些很方便的排序方法供我们使用,那么iOS开发中有哪些方法可以让我们实现对数组元素快速排序呢?

先定义一个数组,然后对其中元素进行排序:

NSArray *originalArray = [NSArray arrayWithObjects:[NSNumbernumberWithInt:5],

[NSNumber
numberWithInt:6],

[NSNumber
numberWithInt:3],

[NSNumber
numberWithInt:4],

[NSNumber
numberWithInt:1],

[NSNumber
numberWithInt:2],

nil];

方法1:NSComparator

NSArray *sortedArray = [originalArray sortedArrayUsingComparator:^(NSNumber *number1,NSNumber *number2) {

int val1 = [number1 intValue];

int val2 = [number2 intValue];

if (val1 > val2) {

returnNSOrderedAscending;

} else {

return NSOrderedDescending;

}

}];

NSLog(@"%@", sortedArray);

方法2.NSSortDescriptor

NSSortDescriptor *descriptor = [[NSSortDescriptoralloc]initWithKey:nilascending:YES];

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

NSArray *sortedArray = [originalArray sortedArrayUsingDescriptors:sortArray];

NSLog(@"%@", sortedArray);

另:此博客将会慢慢停止更新,欢迎访问我的新博客devsay.com进行技术探讨。

时间: 2024-12-13 22:51:08

iOS数组快速排序的相关文章

iOS数组使用

相关链接: ios数组基本用法和排序 NSArray 排序汇总 iOS 数组排序方法 IOS-筛选数组内的元素 关于EnumerateObjectsUsingBlock和for-in之间的较量 [iOS开发技术]NSPredicate谓词的用法 数组过滤

IOS数组、字典、NSNumber 新写法—— @[]、@{}

IOS数组.字典.NSNumber 新写法—— @[].@{} //标准写法 NSNumber * number = [NSNumber numberWithInt:1]; NSArray * array = [NSArray arrayWithObjects:@"one", @"two", nil]; NSDictionary * dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1&quo

IOS数组按中文关键字以字母序排序

本文转载至 http://blog.csdn.net/xunyn/article/details/7882087 iosobjective cuser框架通讯 IOS项目中会用到对通讯录的联系人或是会员按姓名为关键字排序,因为NSArray并不直接支持对汉字的排序,这就要通过将汉字转换成拼音完成按A~Z的排序,这看起来是个头疼的问题,因为牵扯到汉字转为拼音,kmyhy给出一个较易实现的方法,获取汉字的首字的首字母,如将“王”变成“W”,完整文章(传送门). 其中他通过pinyinFirstLet

二维数组快速排序(sort+qsort)

二维数组快速排序 qsort是c中快速排序,如果简单的一维数组排序,想必大家的懂.现在看一下二维数组的排序,虽然可以冒泡但是太费时间了,我们这里使用qsort来快速排序,看代码应该看得懂吧. 代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 struct node 4 { 5 int x,y; 6 }a[10005]; 7 int cmp(const void *a,const void *b) //要转化为结构体类型 8 { 9 str

iOS数组的快速排序

  //  方法1:NSComparator          NSArray *listGroupname = [self.listTeams sortedArrayUsingComparator:^(NSString *n1,NSString *n2) {                  NSString *val1 = [[NSString alloc]init];                  NSString *val2 = [[NSString alloc]init];    

C语言实现数组快速排序(含对算法的详细解释)

/* 说明: 代码参考过网上代码,但分析为个人原创,本贴重在说明快速排序算法的思想和运行过程. */ 代码部分: #include<stdio.h> #include<stdlib.h> void quickSort(int* arr,int startPos, int endPos) { int i, j; int key; key = arr[startPos]; i = startPos; j = endPos; while (i<j) { while (arr[j]

js数组快速排序

<script type="text/javascript"> var arr = [1, 2, 3, 54, 22, 1, 2, 3]; function quick(arr) { if (arr.length <= 1) return arr; var proiindex = Math.floor(arr.length / 2); var proift = arr.splice(proiindex, 1)[0]; //找基准,并把基准从原数组删除 var left

iOS - 数组(NSArray)

1. 数组的常用处理方式 //--------------------不可变数组 //1.数组的创建 NSString *s1 = @"zhangsan"; NSString *s2 = @"lisi"; NSString *s3 = @"wangwu"; //(1) NSArray *array1 = [[NSArray alloc] initWithObjects:s1,s2,s3, nil]; NSLog(@"%@",a

iOS - 数组与字典(NSArray &amp; NSDictionary)

1. 数组的常用处理方式 //--------------------不可变数组 //1.数组的创建 NSString *s1 = @"zhangsan"; NSString *s2 = @"lisi"; NSString *s3 = @"wangwu"; //(1) NSArray *array1 = [[NSArray alloc] initWithObjects:s1,s2,s3, nil]; NSLog(@"%@",a