之前遇到个问题,把一个有序的数组变成无序的数组,之前可能是想多了,有几个简单的方法
1.在oc里有他自带的排序的方法可以修改一下:
<span style="font-size:18px;">NSArray *mutableArr = [NSArray arrayWithObjects:@1,@2,@3,@4,@5,@6,@7,@8,@9,@10, nil];
mutableArr = [mutableArr sortedArrayUsingComparator:^NSComparisonResult(NSNumber *num1, NSNumber *num2) {
int i=arc4random_uniform(2);
if (i) {
return [num1 compare:num2];
}else{
return [num2 compare:num1];
}
}];
NSLog(@"%@",mutableArr);</span>
2.其他的方法
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int arrLen = sizeof(arr)/sizeof(int);
for (int i = 0; i < arrLen;i++) {
for (int j = i+1; j < arrLen; j++) {
if (arr[i] < arr[j] && j%2 == 0) {
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
for (int i = 0; i < arrLen; i++) {
printf("%d ",arr[i]);
}
3.两个可以用随机数的方法(这里就不实现了)
。。。产生两个随机数,交换随机数下标的数
。。。产生随机的0,1。根据0,1进行交换或者不交换
。。。。。。