一个简单的循环排序

一个简单的循环排序,自己记录一下,怕自己忘记,有初学的可以看下,以后会重写吧。。。。

NSMutableArray *array = [NSMutableArray arrayWithObjects:@11,@1,@23,@13,@45,@24,@16,@19,@54,@27,@6, nil];
    //do..while循环是否继续执行判断条件
    BOOL finish = NO;
    //记录需要循环下标的最大值
    NSInteger maxIndex = array.count;

    do {
        //当完成一次排序后,最大值就会被确定,并移至最后,所以再次循环可以不用和最后一位比较,即最大下标减去1
        maxIndex -= 1;
        //每次进来都要把判断条件取反,不然会一直循环下去
        finish = NO;
        //去第一个数和下一位数进行比较,当条件成立,就将两个数位置对调
        for (int i = 0; i < maxIndex; i++) {
            NSInteger leftNum = [array[i] integerValue];
            NSInteger rightNum = [array[i+1] integerValue];
        
            if (leftNum > rightNum) {
                array[i+1] = @(leftNum);
                array[i] = @(rightNum);
                finish = YES;
            
            }
        }
    } while (finish);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,027评论 25 709
  • #171 · 匿名 | 表白 2小时前 其实倔强的背后只有自己知道的心酸,委屈,只是希望背后可以有个人,只要求安安...
    山工院表白墙阅读 1,679评论 0 0
  • 2017.10.06 星期五 国庆小长假快结束了,四川大学中文系的两个小妹妹也要回学校上课去了,昨晚上跟其中一个...
    清风腾逸阅读 3,813评论 0 49
  • 最近项目开发中遇到一个问题:H5页面在MAC PC Chrome mobile模拟器上测试正常,但在App的Web...
    萱宝壮宝阅读 4,292评论 0 0

友情链接更多精彩内容