您的位置:首页 > 其它

一个优化过的OC的简单冒泡排序算法

2016-05-27 17:02 197 查看
话说用OC来写排序算法,其实基本上是使用不到的。因为OC底层已经提供了一些现成的经优化过的排序算法。
这里只是为了用OC来实现,并说明一下其中使用的一个BOOl isFinished可以有效地优化排序算法,降低时间复杂度。
typedef struct JJListNode {
    NSInteger data;
    struct JJListNode *next;
}listMdeg;

- (void)sortList:(listMdeg *)headFr {
    BOOL isFinished = YES;
    
    for (listMdeg *q = headFr; q->next !=nil; q=q->next) {
        
        listMdeg *p = q->next;
        
        for (listMdeg *r = q; p !=nil; p=p->next, r=r->next) {
            if (p->data < r->data) {
                NSInteger m = p->data;
                p->data = r->data;
                r->data = m;
                
                isFinished = NO;
            }
        }
        
        if (isFinished ==
YES) {
            break;
        }
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: