数组操作之遍历,排序,逆序

Posted LiLM

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组操作之遍历,排序,逆序相关的知识,希望对你有一定的参考价值。

数组遍历:

索引遍历

枚举遍历:

  1. NSEnumerator* enumerator = [array objectEnumerator];  
  2. id e = nil;  
  3. while (e = [enumerator nextObject])  
  4. {  
  5.     NSLog(@"e = %@", e);  

代码块遍历:

  1. // 示例1:枚举遍历  
  2. [array enumerateObjectsUsingBlock:^ (id obj, NSUInteger idx, BOOLBOOL *stop){  
  3.     NSLog(@"obj = %@", obj);  
  4. }];  
  5.   
  6. // 示例2:枚举遍历,遇到符合条件的元素(obj=array[idx])即退出遍历。  
  7. [array enumerateObjectsUsingBlock:^ (id obj, NSUInteger idx, BOOLBOOL *stop){  
  8.     if ([obj isEqualToString:@"e3"]) {  
  9.         *stop = YES; // 中止遍历, break  
  10.     } else {  
  11.         *stop = NO; // 继续遍历,continue  
  12.     }  
  13. }]; 

数组排序:

循环排序

代码块排序:

        NSArray *array = @[@12,@23,@8];

        NSComparator sortBlock = ^(id string1,id string2){

//            return [string1 compare:string2];

            if ([string1 floatValue]<[string2 floatValue]) {

                return NSOrderedAscending;

            }else if ([string1 floatValue]==[string2 floatValue]){

                return NSOrderedSame;

            }else{

                return NSOrderedDescending;

            }

        };

        

        NSArray *sortArray = [array sortedArrayUsingComparator:sortBlock];

        NSLog(@"%@",sortArray);

        

    }

 

数组逆序:

遍历逆序

方法逆序:

[[array reverseObjectEnumerator] allObjects];

 

以上是关于数组操作之遍历,排序,逆序的主要内容,如果未能解决你的问题,请参考以下文章

归并排序 之 逆序对

算法设计《分治法》归并排序实例分析之逆序对数

《算法图解》之选择排序

冒泡排序的交换次数 (树状数组)

归并排序(归并排序求逆序对数)--16--归并排序--Leetcode面试题51.数组中的逆序对

排序算法之快速排序