three ways to find the smallest k numbers in large numbers and width partition in quick sort in which pivot exists serveral equal numbers