数组排序 --------- 冒泡排序
C语言的冒泡排序,在之前的学习中已有 http://blog.youkuaiyun.com/cherry_711/article/details/49888961
这次学习的排序是OC基础的,但是不可以直接拿整型来放入数组,且在比较时要将数组元素的整型值取出进行比较。具体实现如下:
NSMutableArray *mstr = [NSMutableArray arrayWithObjects:
[NSNumber numberWithInt:12],
[NSNumber numberWithInt:54],
[NSNumber numberWithInt:711],
[NSNumber numberWithInt:125],
[NSNumber numberWithInt:69],
[NSNumber numberWithInt:1245],
[NSNumber numberWithInt:154],
[NSNumber numberWithInt:78],
[NSNumbernumberWithInt:76],
[NSNumber numberWithInt:95],nil];
for(inti =0; i < mstr.count - 1; i++) {
for(int j = 0; j < mstr.count - i - 1; j++) {
//1现将数组元素取出,再将元素的值取出
NSNumber *num1 = [mstr objectAtIndex:j];
int Num1 = [num1 intValue];
NSNumber *num2 = [mstr objectAtIndex:j +1];
int Num2 = [num2 intValue];
这次学习的排序是OC基础的,但是不可以直接拿整型来放入数组,且在比较时要将数组元素的整型值取出进行比较。具体实现如下:
NSMutableArray *mstr = [NSMutableArray arrayWithObjects:
[NSNumber numberWithInt:12],
[NSNumber numberWithInt:54],
[NSNumber numberWithInt:711],
[NSNumber numberWithInt:125],
[NSNumber numberWithInt:69],
[NSNumber numberWithInt:1245],
[NSNumber numberWithInt:154],
[NSNumber numberWithInt:78],
[NSNumbernumberWithInt:76],
[NSNumber numberWithInt:95],nil];
for(inti =0; i < mstr.count - 1; i++) {
for(int j = 0; j < mstr.count - i - 1; j++) {
//1现将数组元素取出,再将元素的值取出
NSNumber *num1 = [mstr objectAtIndex:j];
int Num1 = [num1 intValue];
NSNumber *num2 = [mstr objectAtIndex:j +1];
int Num2 = [num2 intValue];
if(Num1 > Num2) {
[mstr exchangeObjectAtIndex:j withObjectAtIndex:j + 1];
}
}
}
[mstr exchangeObjectAtIndex:j withObjectAtIndex:j + 1];
}
}
}
//将排好的数组输出在控制台
for(inti =0; i < mstr.count; i++) {
NSLog(@"mstr[%d] = %@",i , mstr[i]);
}
for(inti =0; i < mstr.count; i++) {
NSLog(@"mstr[%d] = %@",i , mstr[i]);
}
上面将数组元素取出,如果嫌麻烦的话,可以直接进行比较
// 2直接取元素的值
if([mstr[j] intValue] > [mstr[j +1] intValue]) {
[mstr exchangeObjectAtIndex:j withObjectAtIndex:j + 1];
if([mstr[j] intValue] > [mstr[j +1] intValue]) {
[mstr exchangeObjectAtIndex:j withObjectAtIndex:j + 1];
}
简化型的:若有不足之处,欢迎指导,一块学习!!
NSMutableArray *array = [NSMutableArray arrayWithArray:@[@"3",@"1",@"10",@"5",@"2",@"7",@"12",@"4",@"8"]];
for (int i = 0; i < array.count; i ++) {
for (int j = 0; j < array.count - 1 - i; j++) {
if([[array objectAtIndex:j] integerValue] > [[array objectAtIndex:j + 1] integerValue]) {
[array exchangeObjectAtIndex:j withObjectAtIndex:j + 1];
}
} }
NSLog(@"%@", array);