????????劃分算法由兩個(gè)指針來完成,這兩個(gè)指針分別指向數(shù)組的兩頭舱痘,左指針left向右移動(dòng)而右指針right向左移動(dòng)秋冰,實(shí)際上left和right初始化時(shí)是在左右邊的各減一位的位置妇智,這是因?yàn)樗_始算法前它們都要分別的加一和減一拙友。
?????????當(dāng)left遇到比特定值小的值時(shí)它繼續(xù)右移,因?yàn)檫@個(gè)數(shù)據(jù)項(xiàng)的位置已經(jīng)在數(shù)組的小于特定值得一邊了背苦。當(dāng)遇到比特定值大的數(shù)時(shí)互捌,它就停下來。類似的行剂,當(dāng)right遇到比特定值大的數(shù)時(shí)就繼續(xù)左移秕噪,當(dāng)遇到比特定值小的數(shù)時(shí)就停下來。當(dāng)都停下來的時(shí)候left和right都指向了在數(shù)組錯(cuò)誤一方位置上的數(shù)據(jù)項(xiàng)厚宰,所以交換這兩個(gè)數(shù)據(jù)項(xiàng)腌巾。交換之后,繼續(xù)移動(dòng)兩個(gè)指針,當(dāng)指向的數(shù)據(jù)項(xiàng)在數(shù)組的錯(cuò)誤的一方時(shí)澈蝙,再次停止然后交換數(shù)據(jù)吓坚。