zoukankan      html  css  js  c++  java
  • 算法-插入排序

    插入排序的基本逻辑就是将最小的元素移动到左边,左边的数组是有序的,右边的数组基本上不需要动,插入排序运行的时间很大情况取决于输入元素的初始顺序,对于一个很大的且其中的元素已经有序的数组进行排序会比随机顺序的数组或者逆序的数组快很多。插入排序对部分有序的数组是非常有效的,数组中的每个元素都离最终的位置不远,数组中只有几个元素位置不正确可以建议选择插入排序。

    关键代码:

    -(NSMutableArray *)insertSort:(NSMutableArray *)arr{
        for (NSInteger i=1; i<[arr count]; i++) {
            for (NSInteger j=i; j>0&&[arr[j] integerValue]<[arr[j-1] integerValue]; j--) {
                
                NSInteger temp=[arr[j] integerValue];
                arr[j]=[NSNumber numberWithInteger:[arr[j-1] integerValue]];
                arr[j-1]=[NSNumber numberWithInteger:temp];
            }
        }
        return arr;
    }
    

    调用:

            NSMutableArray *arr=[[NSMutableArray alloc]initWithCapacity:10];
            [arr addObject:@"9"];
            [arr addObject:@"3"];
            [arr addObject:@"2"];
            [arr addObject:@"8"];
            [arr addObject:@"1"];
            [arr addObject:@"10"];
            [arr addObject:@"4"];
            [arr addObject:@"0"];
            MySort  *sort=[[MySort alloc]init];
           
            NSMutableArray  *resultArr= [sort insertSort:arr];
            
            for (NSInteger i=0; i<[resultArr count]; i++) {
                NSLog(@"%@",[resultArr objectAtIndex:i]);
            }
            NSLog(@"iOS技术交流群:228407086");
            NSLog(@"原文地址:http://www.cnblogs.com/xiaofeixiang");
    

    效果如下:

  • 相关阅读:
    洛谷-P5709 【深基2.习6】Apples Prologue
    右键添加功能
    配置Java环境变量遇到的坑
    mysql安装
    页面置换算法
    程序员画图软件
    Java中传值和传引用
    计算机网络之链路层
    Python开发【第十五篇】模块的导入
    Python开发【第十四篇】装饰器
  • 原文地址:https://www.cnblogs.com/xiaofeixiang/p/4582309.html
Copyright © 2011-2022 走看看