美文网首页iOS开发iOS DeveloperiOS备忘录
Objective-C实现希尔(Shell Sort)排序

Objective-C实现希尔(Shell Sort)排序

作者: 旅行的光 | 来源:发表于2016-04-04 13:17 被阅读195次

    一,Shell Sort简介

    希尔排序通过增量将数组中的元素分组,对分组中的所有元素进行直接插入排序操作。通过不断减小增量和直接插入操作,最终达到实现排序的目的。

    二,图片演示

    希尔排序

    图片来自百度百科

    三,Objective-C算法实现

    - (void) shellSort {
        NSInteger gap,i;
        for ( gap = self.mutableArray.count/2; gap > 0; gap /=2) {
                for ( i = gap; i < self.mutableArray.count; i++) {
                if ([self.mutableArray[i] integerValue] < [self.mutableArray[i-gap] integerValue]) {
                    NSInteger target = [self.mutableArray[i] integerValue];
                    NSInteger j = i - gap;
                    while (j >= 0 && [self.mutableArray[j] integerValue] > target) {
                        self.mutableArray[j+gap] = self.mutableArray[j];
                        j -= gap;
                    }
                    
                    self.mutableArray[j+gap] = [NSNumber numberWithInteger:target];
                }
                    
            }
            
        }
        
    }
    

    特别感谢《白话经典算法系列》

    相关文章

      网友评论

        本文标题:Objective-C实现希尔(Shell Sort)排序

        本文链接:https://www.haomeiwen.com/subject/unyelttx.html