iOS_基本算法总结_快速排序

1.在viewDidLoad 里面加入以下两行代码,就可以得到结果

NSMutableArray*arr = [[NSMutableArrayalloc]initWithArray:@[@16,@1,@2,@9,@7,@12,@5,@3,@8,@13,@10]];

[self quickSortArray:arr withLeftIndex:0 andRightIndex:arr.count-1];

当时我一直想着这样的递归调用怎么得到排序后的结果,最后发现这个传的数组的地址

1.算法逻辑:

随机找出一个数,可以随机取,也可以取固定位置,一般是取第一个或最后一个称为基准,然后就是比基准小的在左边,比基准大的放到右边,就是和基准进行交换,这样交换完左边都是比基准小的,右边都是比较基准大的,这样就将一个数组分成了两个子数组,然后再按照同样的方法把子数组再分成更小的子数组,直到不能分解为止。

2.时间复杂度,最好情况O(n),最坏O(nlogn);

后语:下一片冒泡排序。

你可能感兴趣的:(iOS_基本算法总结_快速排序)