iOS开发 冒泡排序

- (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)

posted @ 2016-09-02 17:13  三年幻想郷  阅读(443)  评论(0编辑  收藏  举报