快速排序就是,选一个元素确定它的位置,前面的都小于他,后面的都大于他,然后递归,前面的再选一个再分成两拨,后面的同样如此
?最外层的while确保选中的元素在应该在的位置,因为最终i一定=j才会跳出while
例如8 5 11 4 7,先第一个while7 5 11 4 7,再下面的while7 5 11 4 11,此时i=2,j=4,key=8然后开始下一层最大的while,7 5 4 11 11,j=3,下一个while中i++,此时i=j=3,最后data3=key=8,结果为7 5 4 8 11,分为了两个,7 5 4 和8 11