草 稿

Partition算法

将一个数组进行划分,使左边的元素都小于某个数,右边的元素都大于等于某个数。

  1. 随机选择数组中的一个元素作为基准值pivot

  2. 将基准值pivot与数组的第一个位置进行交换

  3. 令index = 0

  4. 从数组的第二个元素开始扫描,并进行第5步的判断,直到最后一个元素

  5. 如果当前扫描的元素小于pivot,那么++index,然后将当前元素与index处的元素进行交换

  6. 扫描结束后,将pivot的值(在数组的第一个位置)与index处的元素进行交换

  7. 这样就以index处的元素为划分点,左边的元素都小于index处的值,右边元素都大于或等于index处的值

赞了此轻单

评论(0