1.在viewDidLoad 里面加入以下兩行代碼刹缝,就可以得到結(jié)果
NSMutableArray*arr = [[NSMutableArrayalloc]initWithArray:@[@16,@1,@2,@9,@7,@12,@5,@3,@8,@13,@10]];
[self quickSortArray:arr withLeftIndex:0 andRightIndex:arr.count-1];
當(dāng)時(shí)我一直想著這樣的遞歸調(diào)用怎么得到排序后的結(jié)果惫叛,最后發(fā)現(xiàn)這個(gè)傳的數(shù)組的地址
1.算法邏輯:
隨機(jī)找出一個(gè)數(shù)著觉,可以隨機(jī)取,也可以取固定位置惊暴,一般是取第一個(gè)或最后一個(gè)稱為基準(zhǔn)饼丘,然后就是比基準(zhǔn)小的在左邊,比基準(zhǔn)大的放到右邊辽话,就是和基準(zhǔn)進(jìn)行交換肄鸽,這樣交換完左邊都是比基準(zhǔn)小的,右邊都是比較基準(zhǔn)大的屡穗,這樣就將一個(gè)數(shù)組分成了兩個(gè)子數(shù)組贴捡,然后再按照同樣的方法把子數(shù)組再分成更小的子數(shù)組忽肛,直到不能分解為止村砂。
2.時(shí)間復(fù)雜度,最好情況O(n),最壞O(nlogn);
后語(yǔ):下一片冒泡排序屹逛。