STL之 nth_element

                                                                      nth_element(d,d+k,d+n);

                                                                                                                        下标   0 1 2 3 4 

                              运用STL这个函数可以找到第k+1小的放到第k个位置,比如       4 1 8 3 2(下标从0开始)
 执行函数后 k个最小的数无序的排在了前k个位置,也就是0,1,2的位置,序列变为  3 1 2 4 8
 (4的下标为3也就是k值,保证下标为k的元素为第k+1小的,也就是下表为k的元素前面有k个比他小的(准确说是不比他大的)
    后面是比大的(不小于他的),但前后的元素不保证有序,)

时间复杂度O(n)

猜你喜欢

转载自blog.csdn.net/wrwhahah/article/details/81432606
今日推荐