算法之一 : <<快速排序>>

- (void)viewDidLoad {
    [super viewDidLoad];

  
    NSMutableArray *array = [NSMutableArray arrayWithArray:@[@5,@1,@9,@3,@7,@4,@8,@6,@2]];
    
    [self quickSortWithArray:array left:0 right:array.count-1];
    
    NSLog(@"%@",array);
    
}

#pragma mark ---快速排序算法 ----
-(void)quickSortWithArray:(NSMutableArray *)dataArray left:(NSInteger)left right:(NSInteger)right{
    
    /*如果左邊索引大于或者等于右邊的索引就代表已經(jīng)整理完成一個組了*/
    if (left >= right) {
        return;
    }
    
    NSInteger i = left;
    NSInteger j = right;
    NSNumber * key = dataArray[left];
    
    /*控制在當(dāng)組內(nèi)尋找一遍*/
    while (i< j) {
        
        while (i<j && key <= dataArray[j])
        /*而尋找結(jié)束的條件就是孤里,1浆兰,找到一個小于或者大于key的數(shù)(大于或小于取決于你想升
         序還是降序)2,沒有符合條件1的咖气,并且i與j的大小沒有反轉(zhuǎn)*/
        {
            
            j--;/*向前尋找*/
            
        }
        dataArray[i] = dataArray[j];
        /*找到一個這樣的數(shù)后就把它賦給前面的被拿走的i的值(如果第一次循環(huán)且key是
         a[left],那么就是給key)*/

        while(i < j && key >= dataArray[i])

        /*這是i在當(dāng)組內(nèi)向前尋找,同上,不過注意與key的大小關(guān)系停止循環(huán)和上面相反持偏,
         因?yàn)榕判蛩枷胧前褦?shù)往兩邊扔,所以左右兩邊的數(shù)大小與key的關(guān)系相反*/
        {
            i++;
        }
        
        dataArray[j] = dataArray[i];
        
    }
    
    dataArray[i] = key;/*當(dāng)在當(dāng)組內(nèi)找完一遍以后就把中間數(shù)key回歸*/
    [self quickSortWithArray:dataArray left:left right:i-1];
    /*最后用同樣的方式對分出來的左邊的小組進(jìn)行同上的做法*/
    [self quickSortWithArray:dataArray left:i+1 right:right];
    /*用同樣的方式對分出來的右邊的小組進(jìn)行同上的做法*/
    
    /*當(dāng)然最后可能會出現(xiàn)很多分左右氨肌,直到每一組的i = j 為止*/
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸿秆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子怎囚,更是在濱河造成了極大的恐慌卿叽,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恳守,死亡現(xiàn)場離奇詭異考婴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)催烘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門沥阱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人伊群,你說我怎么就攤上這事考杉。” “怎么了舰始?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵崇棠,是天一觀的道長。 經(jīng)常有香客問我丸卷,道長枕稀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任及老,我火速辦了婚禮抽莱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘骄恶。我一直安慰自己,他們只是感情好匕垫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布僧鲁。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪寞秃。 梳的紋絲不亂的頭發(fā)上斟叼,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機(jī)與錄音春寿,去河邊找鬼朗涩。 笑死,一個胖子當(dāng)著我的面吹牛绑改,可吹牛的內(nèi)容都是我干的谢床。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼厘线,長吁一口氣:“原來是場噩夢啊……” “哼识腿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起造壮,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤渡讼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后耳璧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體成箫,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年旨枯,在試婚紗的時候發(fā)現(xiàn)自己被綠了伟众。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡召廷,死狀恐怖凳厢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情竞慢,我是刑警寧澤先紫,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站筹煮,受9級特大地震影響遮精,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜败潦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一本冲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧劫扒,春花似錦檬洞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽湾戳。三九已至,卻和暖如春广料,著一層夾襖步出監(jiān)牢的瞬間砾脑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工艾杏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留韧衣,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓购桑,卻偏偏與公主長得像畅铭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子其兴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容