sort

如何使用自定义对象对NSMutableArray进行排序?

空扰寡人 提交于 2019-12-10 15:19:03
我想做的事情似乎很简单,但我在网上找不到任何答案。 我有一个 NSMutableArray 对象,让我们说它们是'Person'对象。 我想通过Person.birthDate对 NSMutableArray 进行排序,这是一个 NSDate 。 我认为这与这个方法有关: NSArray *sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(???)]; 在Java中,我会使我的对象实现Comparable,或者使用带有内联自定义比较器的Collections.sort ...你到底如何在Objective-C中执行此操作? #1楼 如果您只是对 NSNumbers 数组进行排序,可以使用1次调用对它们进行排序: [arrayToSort sortUsingSelector: @selector(compare:)]; 这是有效的,因为数组中的对象( NSNumber 对象)实现了compare方法。 您可以为 NSString 对象执行相同的操作,甚至可以对实现比较方法的自定义数据对象数组执行相同的操作。 这是使用比较器块的一些示例代码。 它对一组字典进行排序,其中每个字典在一个键“sort_key”中包含一个数字。 #define SORT_KEY @\"sort_key\" [anArray

数组排序sort方法

╄→гoц情女王★ 提交于 2019-12-10 13:03:05
数组排序sort sort里面不加参数,默认是升序排序 let arr = [1, 8, 2, 9]; arr.sort(); console.log(arr); // [1, 2, 8, 9] 如果想要降序排序,可以加参数改变,如下所示: let arr = ['a', 'b', 'd', 'c']; arr.sort(function (a, b) { if(a > b){ return -1; }else if(b > a){ return 1; }else{ return 0; } }); 如果数组中的元素是数值类型,如果需要升序排序,那么就返回a - b;如果需要降序排序,那么就返回b-a;,如下所示: let arr = [1, 5, 3, 7, 6]; arr.sort(function (a, b) { return a - b; }); 如果要以数组中字符串长度进行排序,如下所示: let arr = ['1234', '56', '23980', '234', '7']; arr.sort(function (a, b) { return a.length - b.length; }); 如果要比较数组中的对象中的某个属性值进行排序,如下所示: let arr = [ {name: 'ww', age: 12}, {name: 'gg', age: 8},

581. 最短无序连续子数组

∥☆過路亽.° 提交于 2019-12-10 11:31:25
排序后,使用双指针对原数组和已排序数组进行比较 1 class Solution { 2 public int findUnsortedSubarray(int[] nums) { 3 int[] sort=Arrays.copyOf(nums,nums.length); 4 Arrays.sort(sort); 5 int i=0,j=sort.length-1; 6 while(i<j){ 7 if(sort[i]==nums[i]) i++; 8 else if(sort[j]==nums[j]) j--; 9 else break; 10 } 11 return (j-i)==0?0:(j-i+1); 12 } 13 } 来源: https://www.cnblogs.com/NiBosS/p/12015393.html

php array_multisort 多维数组排序

狂风中的少年 提交于 2019-12-10 11:09:43
array_multisort — 对多个数组或多维数组进行排序 排序顺序标志: SORT_ASC - 按照上升顺序排序 SORT_DESC - 按照下降顺序排序 排序类型标志: SORT_REGULAR - 将项目按照通常方法比较 SORT_NUMERIC - 将项目按照数值比较 SORT_STRING - 将项目按照字符串比较 $info = Array ( [0] => Array ( [id] => 5 [catetype] => article [parentid] => 1 [catename] => 公司新闻 ) [1] => Array ( [id] => 1 [catetype] => article [parentid] => 0 [catename] => 新闻中心 阅读全文>> 来源: oschina 链接: https://my.oschina.net/u/62849/blog/5353

shell中sort用法

旧巷老猫 提交于 2019-12-10 10:18:12
1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 [rocrocket@rocrocket programming]$ cat seq.txt banana apple pear orange [rocrocket@rocrocket programming]$ sort seq.txt apple banana orange pear 2 sort的-u选项 它的作用很简单,就是在输出行中去除重复行。 [rocrocket@rocrocket programming]$ cat seq.txt banana apple pear orange pear [rocrocket@rocrocket programming]$ sort seq.txt apple banana orange pear pear [rocrocket@rocrocket programming]$ sort -u seq.txt apple banana orange pear pear由于重复被-u选项无情的删除了。 3 sort的-r选项 sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了。 [rocrocket@rocrocket programming]$ cat number.txt

R语言data.frame排序 sort

烂漫一生 提交于 2019-12-10 07:48:08
在这篇文章里面介绍了data.frame的基本操作 data.frame基本操作 。今天写一下data.frame的排序。R基本package里面用的比较多的排序function是order,sort是用来排序vector。 order 这个是order的用法 order(..., na.last = TRUE, decreasing = FALSE, method = c("auto", "shell", "radix")) … 代表的是排序数据,可以是vector,或者多个vectors。 na.last 对空值的处理。TRUE的话,NA值会被排在最后面,FALSE排在最前面。 decreasing 是设置生序排列还是降序排列。默认是生序排列。 method = c(“auto”, “shell”, “radix”) shell是指希尔排序。 百科希尔排序 radix 是基数排序。 百科基数排序 auto是数据类型为short numeric vectors, integer vectors, logical vectors and factors。其余的用shell。 我们来看一个简单的例子。 studentAges <- c(23, 34, 34, 89, 90, 35) studentNames <- c("Bob","Henry","Lily","LiMing",

linux下grep分析apache日志的命令集合

你说的曾经没有我的故事 提交于 2019-12-10 06:25:08
linux下grep分析apache日志的命令集合,不可错过的好文章,有了这些命令,秒杀江湖中大部分的apache日志分析。 实例: 月份英文简写英文全称 一月Jan.January 二月Feb.February 三月Mar.March 四月Apr.April 五月May.May 六月June.June 七月July.July 八月Aug.Aguest 九月Sept.September 十月Oct.October 十一月Nov.November 十二月Dec.December 日志分析整理 Grep 日志整理 1.分析日志文件下 2012-05-04 访问页面最高 的前20个 URL 并排序 cat access.log |grep '04/May/2012'| awk '{print $11}'|sort|uniq -c|sort -nr|head -20 查询受访问页面的URL地址中 含有 www.abc.com 网址的 IP 地址 cat access_log | awk '($11~/\www.abc.com/){print $1}'|sort|uniq -c|sort -nr 2. 获取访问最高的10个IP地址 同时也可以按时间来查询 cat linewow-access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head

学生成绩管理

送分小仙女□ 提交于 2019-12-10 05:21:56
学生成绩管理 一、程序说明 假设某班有不超过40人(具体人数在程序运行时由键盘录入)参加本学期的期末考试,考试科目为语文(CN),数学(MT),英语(EN),科学(SC)。要求编写一个学生成绩管理系统,实现对班级学生成绩的录入、修改、查找、删除、显示、排序、统计、保存等操作的管理。 二、程序设计要求 系统主菜单应包括: 录入每个同学的学号、姓名、性别和各科的考试成绩; 成绩修改:可以根据输入的学号修改成绩;在修改之前需要用户进一步确认,确认无误后再进行操作。 计算每门课程的总分和平均分; 计算每个学生所有课程的总分和平均分; 按每个学生的总分进行排序; 按学号排出成绩表; 按姓名的字典顺序排出成绩表; 按姓名查询学生的各科成绩、总分、平均分及在班级的排名; 按学号查询学生的各科成绩、总分、平均分及在班级的排名; 对每门课程按优(90~100)、良(80~89)、中(70~79)、及格(60~69)、不及格(0~59)统计人数,及所占的百分比。 输出每个学生的姓名、学号、性别、各门课程的考试成绩、总分、平均分及在班级内的排名; 输出班级每门课程的统计数据:包括每门课程的平均分、每门课程优、良、中、及格、不及格的人数及所占百分比; 将每个学生的相关信息写入文件保存; 从文件中读出相关信息并进行处理; 退出系统 执行一个具体的功能之后,程序将重新显示菜单,直至选择退出系统的功能。 ==

算法导论 第7章 课后习题

早过忘川 提交于 2019-12-10 04:30:48
7.2-4 银行经常按照交易时间,来记录有关某一账户的交易情况,但是,很多人喜欢按照票据号来收到其银行对账单。因此,如何将按交易时间排序转换成按支票编号来排序,就成为一个对几乎排好序的输入进行排序的问题。证明在这个问题上,过程INSERT-SORT的性能往往优于过程QUIKSORT。 问题解析: 对于QUIKSORT来说,输入一个已排序的数组属于最坏的情况,则每次区间划分都是最大程度的不对称。其算法运行的递归时间为T(n) = T(n-1) + Θ(n), 算法时间复杂度为Θ(n^2); 而对INSERT-SORT来说,输入一个已排序的数组却属于最佳的情况,算法时间复杂度为O(n)。也就是说当输入一个几乎排好序的数组,快速排序趋于最坏的情况,而插入排序却趋于最佳的情况。为降低这种最坏情况出现的概率,采用快速排序随机化版本,期望的运行时间为O(nlgn)。 7.3-2 在过程RANDOMIZED-QUIKSORT的运行过程中,最坏情况下对随机排序产生器RANDOM调用了多少次?最佳情况下调用了多少次?以Θ记号形式个给出你的答案。 问题分析: 随机快速排序中,只要区间包含元素数目大于1,则需调用RANDOMIZED-PARTITION,选取主元(pivot)进行区间划分, 而主元的选取需调用Random。主元(pivot)一旦被选出来后,就不会在加入到后续的排序了。直白来说就是

OC图书馆系统(含归解档)

▼魔方 西西 提交于 2019-12-09 13:25:26
OC图书馆系统 功能介绍: 1.图书馆内可以 添加 、 删除 书籍。 2.图书馆可以 查询 书籍的信息,包括书名、作者、书籍编号、书籍分类、书籍剩余可借阅量。 3.图书馆可以 打印 出总书单,还可以按照要求查询某一作者或某一类别的书单。 4.学生类可以在图书馆中借阅书籍,并可 计算借阅时间 (书籍的借出时间将归档在你电脑上的某个文件中,直至归还),超时将额外收费。 #import <Foundation/Foundation.h> 下面先从Book类开始: Book类建立: @interface: @interface Book : NSObject<NSCoding,NSCopying> @property(copy,nonatomic) NSString *bookName,*bookWriter,*bookPrice,*sort; @property int bookCode,bookCount; @property NSDate *borrowTime,*returnTime; @property NSString *strborrowtime; Book类属性包括NSString:书名、作者、价格及分类,int:书本编号、书本数量, NSDate:借出及归还时间,NSString:借出时间的string格式。这里不需要归还时间的string格式