快速排序不會直接得到最終結果,只會把比k大和比k小的數分到k的兩邊。(你可以想象一下i和j是兩個機器人,數據就是大小不一的石頭,先取走i前面的石頭留出回旋的空間,然后他們輪流分別挑選比k大和比k小的石頭扔給對面,最后在他們中間把取走的那塊石頭放回去,于是比這塊石頭大的全扔給了j那一邊,小的全扔給了i那一邊。只是這次運氣好,扔完一次剛好排整齊。)為了得到最后結果,需要再次對下標2兩邊的數組分別執行此步驟,然后再分解數組,直到數組不能再分解為止(只有一個數據),才能得到正確結果。 ―― 取自百度百科(鏈接)
C/C++ 實現:
新聞熱點
疑難解答
圖片精選