一个简单的循环排序,自己记录一下,怕自己忘记,有初学的可以看下,以后会重写吧。。。。
NSMutableArray *array = [NSMutableArray arrayWithObjects:@11,@1,@23,@13,@45,@24,@16,@19,@54,@27,@6, nil];
//do..while循环是否继续执行判断条件
BOOL finish = NO;
//记录需要循环下标的最大值
NSInteger maxIndex = array.count;
do {
//当完成一次排序后,最大值就会被确定,并移至最后,所以再次循环可以不用和最后一位比较,即最大下标减去1
maxIndex -= 1;
//每次进来都要把判断条件取反,不然会一直循环下去
finish = NO;
//去第一个数和下一位数进行比较,当条件成立,就将两个数位置对调
for (int i = 0; i < maxIndex; i++) {
NSInteger leftNum = [array[i] integerValue];
NSInteger rightNum = [array[i+1] integerValue];
if (leftNum > rightNum) {
array[i+1] = @(leftNum);
array[i] = @(rightNum);
finish = YES;
}
}
} while (finish);