冒泡排序法的基本思想:(以升序为例)含有n个元素的数组原则上要进行n-1次排序。对于每一躺的排序,从第一个数开始,依次比较前一个数与后一个数的大小。
如果前一个数比后一个数大,则进行交换。这样一轮过后,最大的数将会出现称为最末位的数组元素。第二轮则去掉最后一个数,对前n-1个数再按照上面的步骤找出最
大数,该数将称为倒数第二的数组元素......n-1轮过后,就完成了排序。
实现代码:
NSMutableArray * numArray = [NSMutableArray arrayWithObjects:@"3",@"13",@"5",@"2",@"7",@"18",@"21",@"16",@"23",@"33", nil];
for (int i = 0; i<numArray.count-1; i++) {
//-1 是因为循环后最后一位是整个排序最大的数
for (int j =0; j<numArray.count-1-i; j++) {
//-i 是因为每次i循环后最后一位是每次循环的最大值
if ([numArray[j] intValue]>[numArray[j+1] intValue]) {
int temp = [numArray[j] intValue];
numArray[j] = numArray[j + 1];
//OC中的数组只能存储对象,所以这里转换成string对象
numArray[j + 1] = [NSString stringWithFormat:@"%d",temp];
}
}
}