- (void)bubbleSort:(NSMutableArray *)array { int i, y; BOOL bFinish = YES; for (i = 1; i<= [array count] && bFinish; i++) { bFinish = NO; for (y = (int)[array count]-1; y>=i; y--) { if ([[array objectAtIndex:y] intValue] < [[array objectAtIndex:y-1] intValue]) { [array exchangeObjectAtIndex:y-1 withObjectAtIndex:y]; bFinish = YES; } } } }
算法原理:对n个元素操作,比较相邻两个元素,如果第一个比第二个大就交换他们,这样得到最后一个元素应该是最大的
对n-1个元素操作......
对n-2个元素操作......
......
直到剩余一个元素,无法进行比较操作
完成排序。
冒泡排序为稳定排序;
时间复杂度指的是原操作执行的次数;
冒泡排序的时间复杂度为O(n^2)
最好情况的时间复杂度为O(n)