Cha*_*har -1 sorting loops objective-c ios
我试过这个,但我没有成功。任何人都可以解决这个问题吗?
NSNumber *num1= [NSNumber numberWithInt:5];
NSNumber *num2= [NSNumber numberWithInt:3];
NSNumber *num3= [NSNumber numberWithInt:7];
NSNumber *num4= [NSNumber numberWithInt:9];
NSNumber *num5= [NSNumber numberWithInt:2];
NSMutableArray *array =[NSMutableArray arrayWithObjects:num1,num2,num3,num4,num5, nil];
int numLength = [array count];
int tempValue;
for (int i = 0; i < numLength; i++)
{
for(int j = 0; j < numLength; j++)
{
NSNumber *temp=[array objectAtIndex:i];
int first =[temp integerValue];
NSNumber *temp1=[array objectAtIndex:j+1];
int second =[temp1 integerValue];
if(first > second)
{
tempValue = second;
[array replaceObjectAtIndex:j+1 withObject:temp];
[array replaceObjectAtIndex:i withObject:temp1];
}
}
}
NSLog(@"Array is %@", array);
Run Code Online (Sandbox Code Playgroud)
此代码在 ViewDidLoad...
谢谢
试试这个,它确实很好用:
NSMutableArray *_array = [NSMutableArray array];
for (int i = 0; i < 5; i++) { [_array addObject:@(arc4random()%10)]; }
NSLog(@"random: %@", _array);
for (int i = 0; i < _array.count; i++) {
for(int j = i; j < _array.count; j++) {
if (i != j) {
NSInteger _first = [[_array objectAtIndex:i] integerValue];
NSInteger _second = [[_array objectAtIndex:j] integerValue];
if (_second < _first) {
[_array exchangeObjectAtIndex:i withObjectAtIndex:j];
}
}
}
}
NSLog(@"sorted : %@", _array);
Run Code Online (Sandbox Code Playgroud)
注意:这种对数组元素进行排序的方式非常低效,建议仅用于教育目的。