美文网首页程序员
ios 快速排序

ios 快速排序

作者: iOS大熊猫 | 来源:发表于2020-05-15 12:17 被阅读0次

- (void)viewDidLoad {

    [super viewDidLoad];

    //初始化 创建数组

    NSMutableArray  *mArray = [[NSMutableArray alloc] initWithObjects:[NSNumber numberWithInt:1], [NSNumber numberWithInt:1], [NSNumber numberWithInt:8], [NSNumber numberWithInt:7], [NSNumber numberWithInt:1], [NSNumber numberWithInt:6],[NSNumber numberWithInt:4],[NSNumber numberWithInt:5],nil];

    [selfsortArray:mArrayleft:0right:mArray.count-1];

}

-(void)sortArray:(NSMutableArray *)array left:(int)left right:(int)right{

    if (left>=right) {//如果数组长度为0或1时返回

        return;

    }

    int i = left;

    int j = right;

    //记录比较基准数

    NSNumber *key = array[left];

    while (i<j) {

        /* 首先从右边j开始查找比key小的值 */

        while (i<j&&[key intValue] <= [array[j] intValue]) {//如果比key大 则 j--

            j--;

        }

        if (i != j) {//如果比key小,则将查找到的小值调换到i的位置

            array[i] = array [j];

        }

        /* 当在右边查找到一个比key小的值时,就从i开始往后找比key大的值 */

        while (i<j&&[key intValue] >= [array[i] intValue]) {//如果比key小 则 i++

            i++;

        }

        if (i != j) {//如果比key大,则将查找到的大值调换到j的位置

            array[j] = array[i];

        }

    }

    array[i] = key;

    /*递归排序 */

    //排序key左边的

    [self sortArray:array left:left right:i-1];

    //排序key右边边的

    [self sortArray:array left:i+1 right:right];

    NSLog(@"%@",array);

}

相关文章

  • iOS 中的冒泡、选择、快速、插入排序算法

    不喜勿喷, 不吝指教 冒泡排序 选择排序 插入排序 快速排序 参考链接:iOS 开发中常用的排序(冒泡、选择、快速...

  • iOS标准库中常用数据结构和算法之排序

    上一篇:iOS系统中的常用数据结构之链表 ?排序 排序是指将乱序数组变为有序排列的处理。iOS提供了快速排序、堆排...

  • 算法

    iOS冒泡排序、插入排序、选择排序、快速排序、二分查找用数组实现栈和队列专题:菲波那切数列与递归

  • iOS - 快速排序

    Demo_github 快速排序 快速排序(Quick Sort)是对冒泡排序的一种改进。通过一趟排序将要排序的数...

  • iOS快速排序

    时间复杂度:nlog(n)

  • iOS 快速排序

      快速排序(Quick Sort)是实际开发中经常选用的一种排序方式。其排序原理:取数组中的首个元素为轴点数据,...

  • iOS 快速排序

    首先我们看下为啥要使用快速排序,如:现在我们有一个数组,需要对里面的数据进行排序,使用最原始的双层for循环排序 ...

  • ios 快速排序

    - (void)viewDidLoad { [super viewDidLoad]; //初始化 创建数组...

  • iOS 快速排序

    核心代码 ///=================快速排序 - (void)sort { self.array...

  • 数组的排序

    系统提供的排序方法,我觉得应该是快速排序方法的封装 OC swift 还有其他排序的方法,可参考文章:iOS 数组...

网友评论

    本文标题:ios 快速排序

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