Objective-C实现冒泡算法

一,冒泡算法简介

冒泡算法是一种基础的排序算法,这种算法会重复的比较数组中相邻的两个元素。如果一个元素比另一个元素大(小),那么就交换这两个元素的位置。重复这一比较直至最后一个元素。这一比较会重复n-1趟,每一趟比较n-j次,j是已经排序好的元素个数。每一趟比较都能找出未排序元素中最大或者最小的那个数字。这就如同水泡从水底逐个飘到水面一样。冒泡排序是一种时间复杂度较高,效率较低的排序方法。其空间复杂度是O(n)。

二,冒泡排序的时间复杂度

1,最差时间复杂度 O(n^2)
2, 平均时间复杂度 O(n^2)

三,实现思路

1,每一趟比较都比较数组中两个相邻元素的大小
2,如果i元素小于i-1元素,就调换两个元素的位置
3,重复n-1趟的比较

四,Objective-C代码实现

- (void) bubbleSort :(NSMutalbeArray *) array {  
if (array.count == 0) {
        return;
    }
    
    for (int i = 0; i < array.count; i ++) {
        for (int j = 1; j < array.count - i; j ++) {
            if ([array[j] integerValue] < [array[j-1] integerValue]) {
                int temp =(int) [array[j] integerValue];
                array[j] = array[j-1];
                array[j-1] = [NSNumber numberWithInt:temp];
            }
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,214评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,742评论 0 15
  • 该系列文章主要是记录下自己暑假这段时间的学习笔记,暑期也在实习,抽空学了很多,每个方面的知识我都会另起一篇博客去记...
    Yanci516阅读 12,266评论 6 19
  • “真想让时间停留在这一刻,这样我就可以和你永远在一起了。”女子依偎在男子的怀里轻轻的说。男子叹了口气说道“是啊,要...
    谱写我的文章阅读 270评论 1 3
  • 2017.4.4 1.要先想清楚,才能写清楚,写文章的时候是用文字表达思想,如果一个人的思考是完整的,论证是清楚的...
    有温度的阳光阅读 785评论 0 1