iOS简单排序
来源:互联网 发布:巩义共赢网络是什么 编辑:程序博客网 时间:2024/04/19 10:22
. 冒泡排序
-(void)logArrayFunctionNice { BOOL flag = YES; NSMutableArray * arr = @[@16,@1,@2,@9,@7,@12,@5,@3,@8,@13,@10].mutableCopy; for (int i = 0; i < arr.count && flag; i++) { flag = NO; for (int j = (int)arr.count-2; j > i; j--) { if (arr[j] < arr[j+1]) { [arr exchangeObjectAtIndex:j withObjectAtIndex:j+1]; flag = YES; } } }
. 堆排序
- (void)heapSort:(NSMutableArray *)list{ NSInteger i ,size; size = list.count; //找出最大的元素放到堆顶 for (i= list.count/2; i>=0; i--) { [self createBiggesHeap:list withSize:size beIndex:i]; } while(size > 0){ [list exchangeObjectAtIndex:size-1 withObjectAtIndex:0]; //将根(最大) 与数组最末交换 size -- ;//树大小减小 [self createBiggesHeap:list withSize:size beIndex:0]; } NSLog(@"%@",list);}- (void)createBiggesHeap:(NSMutableArray *)list withSize:(NSInteger) size beIndex:(NSInteger)element{ NSInteger lchild = element *2 + 1,rchild = lchild+1; //左右子树 while (rchild < size) { //子树均在范围内 if (list[element]>=list[lchild] && list[element]>=list[rchild]) return; //如果比左右子树都大,完成整理 if (list[lchild] > list[rchild]) { //如果左边最大 [list exchangeObjectAtIndex:element withObjectAtIndex:lchild]; //把左面的提到上面 element = lchild; //循环时整理子树 }else{//否则右面最大 [list exchangeObjectAtIndex:element withObjectAtIndex:rchild]; element = rchild; } lchild = element * 2 +1; rchild = lchild + 1; //重新计算子树位置 } //只有左子树且子树大于自己 if (lchild < size && list[lchild] > list[element]) { [list exchangeObjectAtIndex:lchild withObjectAtIndex:element]; }}
自带排序方法
-(void)sort:(NSArray*)arr { [arr sortedArrayUsingComparator:[self comparator];}- (NSComparator)comparator{ NSComparator cmptr = ^(id *obj1, id *obj2){ if (obj1.integerValue > obj2.integerValue) { return (NSComparisonResult)NSOrderedDescending; } if (obj1.integerValue < obj2.integerValue) { return (NSComparisonResult)NSOrderedAscending; } return (NSComparisonResult)NSOrderedSame; }; return cmptr;}
阅读全文
0 0
- iOS简单排序
- iOS简单排序--字母排序、NSDictionary排序
- IOS 数组的简单排序
- iOS数组排序简单介绍
- iOS关于数组的简单排序
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- ios的几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- ios几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- https://localhost:5500/em/login 登录不了
- NDK 安装小结
- ELK 日志分析系统
- 优信二手车助力浪漫90后 巨型快递见证甜蜜瞬间
- SpringBoot--使用Thymeleaf模板开发web项目
- iOS简单排序
- canvas.html#toc9
- UVa11401
- 实现简单购物车功能
- 圣杯模型和双飞翼模型浅析(高度)
- 文章标题
- 读取txt文件的内容
- weekly contest 55 第二题Minimum ASCII Delete Sum for Two Strings
- Git添加远程库