美文网首页
OC排序算法整理

OC排序算法整理

作者: 没打伞的鱼 | 来源:发表于2019-10-18 16:25 被阅读0次
#pragma mark - 插入排序
-(void)insertionSort{
    
     NSMutableArray * notSortedArray = [NSMutableArray arrayWithObjects: @"1",@"8",@"2",@"14",@"7",@"13",@"5",@"9",@"98",nil];
    
    
    for (NSInteger i = 0 ; i < notSortedArray.count -1; i++){
        
        for (NSInteger j = i+1; j >0; j --) {
            
            if([notSortedArray[j] intValue] < [notSortedArray[j-1] intValue]){
                [notSortedArray exchangeObjectAtIndex:j-1 withObjectAtIndex:j];
                
            }else{
                break;
            }
        }
        
     }
    
    NSLog(@"%@",notSortedArray);
}




#pragma mark - 选择排序
/**
 从第一个位置开始比较,找出最小的,和第一个位置互换,开始下一轮。
 类似于打擂台,都去与第一位置的人对比,选出最小的;然后再都去与第二位置的对比
 */

-(void)selectionSort{
    
    
    NSMutableArray * notSortedArray = [NSMutableArray arrayWithObjects: @"1",@"8",@"2",@"14",@"7",@"13",@"5",@"9",@"98",nil];
    
    for (NSInteger i = 0 ; i < notSortedArray.count - 1; i++){
        
        for (NSInteger j = i+1; j < notSortedArray.count ; j ++) {
            if([notSortedArray[j] intValue] < [notSortedArray[i] intValue]){
                [notSortedArray exchangeObjectAtIndex:j withObjectAtIndex:i];
            }
        }
    }
    
     NSLog(@"%@",notSortedArray);
    
}



冒泡排序

原理


IMG_0056.jpg
/**
 冒泡排序,相邻两个对比,前者比后者大,交换位置
 */
-(void)bubbleSort{
    

    NSMutableArray * notSortedArray = [NSMutableArray arrayWithObjects: @"1",@"8",@"2",@"14",@"7",@"13",@"5",@"9",nil];
    for (NSInteger i = 0 ; i < notSortedArray.count - 1; i++){
        //第一次外循环找出最大的数,第二次外循环找出第二大的数……总共需要n-1次外循环

        for (NSInteger j = 0; j < notSortedArray.count -1-i;j++) {
            if([notSortedArray[j] intValue] > [notSortedArray[j+1] intValue]){
                [notSortedArray exchangeObjectAtIndex:j+1 withObjectAtIndex:j];
            }

        }
    }

    NSLog(@"%@",notSortedArray);

}

相关文章

  • 常见算法

    OC整理递归和排序算法

  • iOS排序方法集合

    OC_选择排序 OC_冒泡排序 参考原文:排序算法

  • OC排序算法整理

    冒泡排序 原理

  • 算法:冒泡排序

    本文内容:1、什么是冒泡排序?2、冒泡排序的 C/OC 实现与算法分析。 算法总目录:算法? 1、什么是冒泡排序?...

  • OC整理递归和排序算法

    一、递归算法 递归算法:(英语:recursion algorithm)在计算机科学中是指一种通过重复将问题分解为...

  • 常见排序算法

    整理常见排序算法。

  • 数据结构与算法学习-排序算法(二)

    很早之前整理过一篇排序算法,这次又整理了一下,增加了计数排序、归并排序和桶排序,需要的拿走不谢! 各种排序算法实现...

  • 数据结构与算法(二):排序算法

    十大基础排序算法。 Basic-Sorting-Algorithm 关于十大基本排序算法的整理。 十大排序算法分别...

  • Java版排序算法

    网上很多Java排序算法有错误,以下是本人经过整理校验后的算法。 1、冒泡排序 2、快速排序 3、选择排序 4、堆...

  • 算法

    冒泡排序、选择排序 swift 写法 OC 写法 斐波那契算法【后一项等于前两项之和】

网友评论

      本文标题:OC排序算法整理

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