OC 面试常见面试题:去重,排序
来源:互联网 发布:软件行业发展概况 编辑:程序博客网 时间:2024/06/05 03:22
//去重方法一
NSArray *array = [NSArrayarrayWithObjects:@"aa",@"bb",@"aa",nil];
NSLog(@"array = %@",array);
NSMutableArray *mArray = [NSMutableArrayarray];
for (int i =0; i < array.count; i++) {
if ([mArray containsObject:[array objectAtIndex:i]] ==NO) {
[mArray addObject:[array objectAtIndex:i]];
}
}
NSLog(@"mArray = %@",mArray);
//去重方法二:(顺序有可能会变)
NSSet *set = [NSSetsetWithArray:array];
NSLog(@"set = %@",set);
//排序
NSArray *array2 = @[@5,@8,@6,@4,@2,@1,@3,@7,@9];
//升序
array2 = [array2 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"array2 = %@",array2);
//(倒序)倒过来就变成降序了
NSMutableArray *mArray1= [NSMutableArrayarray];
for (int i = (int)array2.count-1; i >-1; i--) {
// NSLog(@"array2 = %@",array2[i]);
//再放到数组里
[mArray1 addObject:array2[i]];
}
NSLog(@"mArray1 = %@",mArray1);
NSArray *array3 = @[@5,@8,@6,@4,@2,@1,@3,@7,@9];
NSArray *array4 = [array3 sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
//如果是“>”则是升序,如果是“<”则是降序
if ([obj1 intValue] > [obj2 intValue]) {
returnNSOrderedAscending;
}
else
{
returnNSOrderedDescending;
}
}];
NSLog(@"array4 = %@",array4);
//排序
NSSortDescriptor *descriptor = [[NSSortDescriptoralloc]initWithKey:nilascending:YES];
NSArray *sortArray = [NSArrayarrayWithObjects:descriptor, nil];
NSArray *sortedArray = [array3 sortedArrayUsingDescriptors:sortArray];
NSLog(@"sortedArray = %@",sortedArray);
//经典冒泡排序
NSMutableArray *mArray2 = [NSMutableArrayarrayWithArray:array2];
int temp;
for (int i =0; i < mArray2.count-1; i++) {
for (int j =0; j < mArray2.count-1-j; j++) {
if ([mArray2[j] intValue] > [mArray2[j+1] intValue]) { //拆包
temp = [mArray2[j] intValue];
mArray2[j] = mArray2[j+1];
mArray2[j+1] = [NSNumbernumberWithInt:temp];
}
}
}
NSLog(@"mArray2 = %@",mArray2);
- OC 面试常见面试题:去重,排序
- 常见OC面试题
- OC常见面试题
- js面试题之数组去重和快速排序
- 面试题-华为-数组去重与排序-2
- 【面试题】连续重复字符串去重
- 通用面试题:海量数据去重
- 面试题:异或去重
- 【经典面试题】JavaScript数组去重
- 前端面试题之数组去重
- OC中常见的面试题
- OC中常见的面试题
- OC内存管理常见面试题整理
- 排序算法常见面试题
- 2015百度面试题--对10亿个32位整数去重和排序
- 程序员面试常见面试题深入剖析
- 常见面试题整理+网易实习生面试
- android面试笔试常见面试题
- SSM 三大框架---事务处理
- 《离散数学》用C++实现第二类Stirling数的递归与(非递归)递推的方法 ,并且在实现了s(n-k)=S(n-1,k-1)+k*S(n-1,k)用递归、非递归方式之后,比教两个实验的调试速度、耗时
- Caffe + Ubuntu 14.04 + CUDA 7.0 新手安装配置指南
- poj 2226 Muddy Fields 最大匹配
- jdk8环境变量 jdk8图解安装 java8安装
- OC 面试常见面试题:去重,排序
- uva10344
- 3-2 八皇后问题
- IO流的读写操作
- 求单链表结点的阶乘和
- 单独编译
- [sicily] 1021. Couples
- JavaScript-父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序
- 用R语言进行数据可视化的综合指南(一)