冒泡排序OC

算法的个人理解:

       冒泡排序由两层for循环实现,最外层的for循环每执行一次,叫做“一趟”。循环每完成一趟就将待排序数组中的一个数放到一个合适的位置;内层循环完成的是数组中相邻两个数的对比,根据内层循环就可以决定最后排好序的数组的方向(从大到小还是从小到达)。假设带排序数组中有n个数,那么只需要进行(n - 1)趟排序,因为每执行一次排序就可以排出数组中某一个数的正确位置,n个数中排好序的有(n - 1)个,那么最后一个数不用排它的位置就是正确的。

- (void)bubbleSortWithMutableArray:(NSMutableArray *)mutableArray{

         for(inti =0; i < (mutableArray.count-1); i++) {//假如有n个数进行排序,那么只要排n - 1趟就好了,因为每一趟排序就是找出一个数把它正确放在第一或者第几的位置上,当n - 1个数排好序之后,那么最后一个自然也就是有序的,不用再去排序

                for(intj =0; j < ((mutableArray.count-1) - i); j++) {//因为每一趟排序之后会排出一个数,这个数的位置已经正确,所以不用继续去比较(排到第几趟就代表着已经排出多少个数,所以要减去已经排出的数的个数),然后每一趟的比较都是从第一位(也就是j = 0)开始比较的,

                //if (mutableArray[j] < mutableArray[j + 1]) {//从大到小的排序

                       //NSInteger temp = [mutableArray[j] integerValue];

                      //mutableArray[j] = mutableArray[j + 1];

                     //mutableArray[j + 1] = [NSNumber numberWithInteger:temp];

                 //}

                if(mutableArray[j] > mutableArray[j +1]) {//从小到大

                       NSIntegertemp = [mutableArray[j]integerValue];

                       mutableArray[j] = mutableArray[j +1];

                       mutableArray[j +1] = [NSNumbernumberWithInteger:temp];

                }

          }

    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,295评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,811评论 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 1,343评论 0 2
  • 用了oc 和swift 两个版本思想都是一些样的,同时结合了block 和闭包的概念。 OC版本: import...
    vvkeep阅读 530评论 1 0
  • 云效平台2017-11-27 13:44:21浏览315评论0发表于:阿里云效平台 linux安全架构docker...
    暖夏未眠丶阅读 401评论 1 1

友情链接更多精彩内容