美文网首页程序员
数组的几种排序法

数组的几种排序法

作者: 向日葵_wwx | 来源:发表于2016-01-05 22:08 被阅读220次

<1>描述:字符串对象都可以排序
// 创建描述对象就是对数组排序的,它可以把数组中元素的某个属性作为key 进行升序或者降序的排列,每一个NSSortDescriptor描述就是一个排序条件
// 描述排序其实就是可以按照条件去升降排序
// key:就是你要排序的对象
// ascending:是升序还是降序

//<1>创建数组
NSMutableArray *ms = [[NSMutableArray alloc]initWithObjects:@"kkk", @“abg”,nil];

//<2>创建描述对象:如果说我们这个数组中存储是一个个字符串,那么我们这块的key值就应该写成nil或者@“self”,如果是对象则写成对象的属性即可

NSSortDescriptor *mm = [[NSSortDescriptor alloc]initWithKey:@"self" ascending:YES];

NSSortDescriptor *nn = [[NSSortDescriptor alloc]initWithKey:@"name" ascending:YES];

//<3>使用描述方法满足以上描述对象的条件对上面的数组进行排序
[ms sortUsingDescriptors:@[mm]];
NSLog(@"%@",ms);

<4>可变数组的描述方法是[数组名 sortUsingDescriptors:@“ 描述对象的名字 ”]

<5>不可变数组的描述方法是,首先得创建一个新的数组来承接
NSArray *array = [数组名 sortedArrayUsingDescriptors:@“ 描述对象的名字 ”]

<2>compare使用这个方法给数组排序
//<1>创建数组
NSArray *kkl = @[@“4”,@"3",@"5",@"1"];

//<2>数组调用compare排序方法,这个方法默认是升序的,
[kkl sortedArrayUsingSelector:@selector(compare:)];

<3>我们也可以重写这个方法,按照自己的条件进行排序
//按姓名进行对比:compare:方法是字符串拥有的方法

自定义方法比较方法- (NSComparisonResult)compareByName: (Student *)other{
return [self.name compare:other.name];//因为属性是个字符串,所以在这块可以用compare直接比较,然后返回比较结果就行了,

}

//按年龄进行对比

  • (NSComparisonResult)compareByAge: (Student *)other{
    if (self.age > other.age) {//基本类型对比的话就是直接对比的
    return 1;
    }else if (self.age < other.age){
    return -1;
    }else{
    return 0;
    }
    }

枚举排序:

相关文章

  • 数组的几种排序法

    <1>描述:字符串对象都可以排序// 创建描述对象就是对数组排序的,它可以把数组中元素的某个属性作为key 进行...

  • 数组相关处理函数2

    冒泡排序法 快速排序法 数组排序函数 ksort 对数组按照键名排序 krsort 键名降序排序 asort 对数...

  • 排序算法

    排序算法分类 排序算法常用主要有:冒泡排序法、快速排序法、选择排序法、插入排序法、堆排序法、归并排序法等几种。 ...

  • php四种基础算法:冒泡,选择,插入和快速排序法

    需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中 的值按照从小到的顺序进行排序。$arr(...

  • PHP四种基础算法详解

    需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中 的值按照从小到的顺序进行排序。 1、冒泡...

  • 二分法查找

    二分法查找的前提是数组必须排序!!!二分法查找的前提是数组必须排序!!!二分法查找的前提是数组必须排序!!!二分法...

  • PHP实现四种基本排序算法

    前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序。 $arr(...

  • PHP实现四种基本排序算法

    前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序。 $arr(...

  • swift中几种排序算法原理的UI动态实现

    swift中的排序算法总结 冒泡排序 选择排序 快速排序 插入排序 堆排序 归并排序 系统排序 我们将这几种数组排...

  • 一维数组

    一维数组通常用于数组的查找和排序 排序 1:倒序输出 2:升序or降序排列冒泡排序法 查找

网友评论

    本文标题:数组的几种排序法

    本文链接:https://www.haomeiwen.com/subject/skuzhttx.html