Input: Unsorted list of length , probability distribution of the knee point in the sorted
list of length :
Output: The knee point e or the non-existence of it ( = null).
(1)solve the optimization problem of list in (20) to get
(2)if   then /* total sort is the optimal option */
(3) totally sort list
(4) /* successful if the knee point exists */
(5) Search the sorted list for the knee point
(6)return /* the algorithm is completed */
(7)else /* top- sorting is the optimal option */
(8)QuickSortTopK( , 1, length( ), )
(9)Search the sorted list for the knee point e
(10)  if is found then
(11)  returne
(12)  else /* Update the parameters for the next round of optimization problem */
(13)    update according to (5) /* the posterior probability */
(14)   update by exluding the top- item from list
(15)   FindKnee( , )
Algorithm 3: FindKnee( , ).