数组排序 block排序 和数组内排序

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

@autoreleasepool {

//数组内排序

NSArray *[email protected][@"MON",@"TUE",@"WED",@"THU",@"FRI",@"SAT",@"SUN" ];

NSArray *sarr=[week sortedArrayUsingSelector:@selector(compare:)];

for (id str in sarr  ) {

NSLog(@"%@",str);

}

/*id 当不确定数组元素的类型时,可以选择id

NSObjct 和id都是指向任何对象

nsobject 使用时必须强转

instantceType 只能返回和方法所在类相同的类型的对象

返回值类型、但是绝对不能传参

id 只能返回位置类型的对像  参数适合

*/

//数组排序--block

NSComparator sort=^(id obj1,id obj2){

return [obj1 compare:obj2];

};

NSArray *arr=[week sortedArrayUsingComparator:sort];

for(id str in arr){

NSLog(@"%@",str);

}

}

return 0;

}

时间: 2024-12-28 08:16:34

数组排序 block排序 和数组内排序的相关文章

NSSortDescriptor使用注意以及直接排序字符串数组

NSSortDescriptor 指定用于对象数组排序的对象的属性. 如果是Employee对象需要按照name来排序,就生成下面的descriptor NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:name ascending:YES]; 如果需要多个排序,比如先按name排序,再按入职日期排序.那就创建两个descriptor NSSortDescriptor *descriptor = [NSS

数组排序与二维数组

// // main.c // 数组排序与二维数组 // // Created by zhangxueming on 15/6/1. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #include <stdio.h> //冒泡排序(从小到大) //9 7 8 5 3 --> 3 5 7 8 9 //第一次排序 //7 9 8 5 3 //7 8 9 5 3 //7 8 5 9 3 //7 8 5 3 9 //第二

利用索引数组排序 不改变原数组值的位置

1.定义一个和要排序数组a[10]长度一样的数组, 这里定义为10,index[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},值为10个下标. 2. 用冒泡排序,索引值代替小下标即可 #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { int a[10] = {4, 2, 1, 6, 7, 9, 0, 3, 5, 8}; int index[10] = {0, 1, 2, 3, 4, 5, 6

在未排序的数组中找到第 k 个最大的元素

在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出: 4 说明: 你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度.思路方法:这道题思路就挺简单的,考查的就是对排序算法的了解.就用排序算法把数组元素按照降序排列,最后返回排序好的数组中下标为k-1的元素即是答

&lt;笔试&gt;&lt;面试&gt;编写一个排序函数,实现,既可以排序整形数组,又可以排序字符串。

思路:仿照qsort函数运用函数指针实现排序整形数组.排序字符串的功能. 首先,编写整形数组比较函数和字符串比较函数:其次,仿照qsort函数将首元素地址.元素个数.元素大小.比较函数 传参编写熟悉的冒泡排序函数:最后,举例验证函数正确性. /******************************/ //1.编写冒泡排序,可以排序整形数组,也可以排序字符串. #include<stdio.h> #include<stdlib.h> #include<assert.h&g

【c语言】输入一个递增排序的数组的一个旋转,输出旋转数组中的最小元素

//旋转数组的最小数字 //题目:把一个数组最開始的若干个元素搬到数组的末尾.我们称之为数组的旋转. //输入一个递增排序的数组的一个旋转.输出旋转数组中的最小元素. //比如:数组{3.4,5,1,2}为{1,2.3.4.5}的一个旋转,最小元素是1. #include <stdio.h> #include <assert.h> int min_equ(int *src, int left, int right) { int i = 0; int ret = src[left];

【C练习】两个已经从小到大的数组合并成为一个从小到大排序的数组

两个已经从小到大的数组合并成为一个从小到大排序的数组 1 #include<stdio.h> 2 int main() 3 { 4 int m,n,i,j,k,tem=0; 5 printf("这两个数组分别有多少个数:\n"); 6 scanf("%d%d",&m,&n); 7 int a[m],b[n],c[m+n]; 8 printf("从小到大输入%d个数:\n",m); 9 for(i=0;i<m;i+

【C语言】求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素

//求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素 #include <stdio.h> #include <string.h> int find_min(int arr[],int len) { int i = 0; for (i = 1; i < len; i++) { if (arr[i] < arr[0]) return arr[i]; } return arr[0]; } int main() { int i; int arr1[] =

一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的 相对顺序 比如: input: 1,7,-5,9,-12,15 ans: -5,-12,1,7,9,15 要求时间复杂度O(N),空间O(1) 。

#include <iostream> using namespace std; void mSort(int *arr, int iLen) { int i, j, k, tmp; for(i = 0, j = 0; i < iLen; i++) { if (arr[i] < 0) { tmp = arr[i]; for(k = i; k > j; k--) arr[k] = arr[k - 1]; arr[j++] = tmp; } } } int main() { in