冒泡排序法的基本思想:(以升序為例)含有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];
}
}
}