大多数同学主要纠结在j和i如何划分边界,相同下面的问题就不纠结!~ 1.快排的本质是让左边的数都严格小于右边的数。 2.按照闫老师的程序做法,i和j两个指针必定相交,然后穿过对方 3.按照模板做法j所指的应该是小于标准值mid的,而j+1的值就有可能等于mid(参考视频) 4.等于mid的地方放在左右两边都可以,所以这里等于mid的值都被放在了右边。 总结,其实记模板也不是很难,记住j是小于mid的第一个值就可以!
确实,这个快排的边界问题真是一言难尽
边界问题主要是要记住i是从前向后走,j是从后向前走, i满足的条件是他的前面的都小于x,至于他自己不确定,因为最后有一次i,所以左右两端应该是l~i-1,i~r j满足的条件是他的后面的都大于x,他自己不确定,同理j,所以左右两端应该是l~j,j+1~r
感谢解惑🌹🌹💐💐🌻🌻
确实,这个快排的边界问题真是一言难尽
边界问题主要是要记住i是从前向后走,j是从后向前走,
i满足的条件是他的前面的都小于x,至于他自己不确定,因为最后有一次i,所以左右两端应该是l~i-1,i~r
j满足的条件是他的后面的都大于x,他自己不确定,同理j,所以左右两端应该是l~j,j+1~r
感谢解惑🌹🌹💐💐🌻🌻