變序性演算法

2021-09-27 03:42:57 字數 1378 閱讀 2628

reverse(beg,end);

reverse_copy(sourcebeg,sourceend,destbeg);

旋轉元素次序:

rotate(beg,newbeg,end);

將beg

-end元素旋轉,然後newbeg成為第乙個元素

rotate_copy(beg,newbeg,end,destbeg);

將beg

-end的元素旋轉複製到destbeg裡面,並且使newbeg成為第乙個元素

排列元素:

bool

next_permutation(beg,end);

bool

prev_permutation(beg,end);

改變元素次序,符合下乙個排列次序

改變元素詞語,符合上乙個排列次序

重拍元素:

random_abuffle(beg,end);

random_abuffle(beg,end,op);

第乙個隨機打亂beg

-end的元素次序

第二個用op打亂beg

-end的元素次序

向前搬移元素:

partition(begin,end,op);

stable_partition(beg,end,op);

排序:sort(begin,end);

sort(begin,end,op);

stable_sort(beg,end);

stable_sort(beg,end,op);

區域性排序:

partial_sort(begin,sortend,end);

partial_sort(begin,sortend,end,op);

對begin-end進行排序,使begin-sortend變成有序

partial_sort_copy(sourcebegin,sourceend,destbeg,destend);

partial_sort_copy(sourcebegin,sourceend,destbeg,destend,op);

根據第n個元素排序:

nth_element(beg,nth,end);

nth_element(beg,nth,end,op);

heap排序:

make_heap(beg,end);

make_head(beg,end,op);

push_heap(beg,end);

push_heap(beg,end,op);

pop_heap(beg,end);

pop_heap(beg,end,op);

sort_heap(beg,end);

sort_heap(beg,end);

c 演算法 變序性演算法

改變元素的次序,但不改變元素值,這種演算法不能用於關聯性容器,因為在關聯性容器中,元素有一定的次序,不能隨意改動 reverse 將元素的次序逆轉 reverser copy 複製的同時,逆轉元素順序 rotate 旋轉元素的次序 rotate copy 複製的同時,旋轉元素的次序 next per...

STL 變序類演算法

前言 所謂變序類演算法,就是在乙個容器裡面,把原有的順序改變,在這裡主要是介紹幾個演算法,reverse翻轉,rotate旋轉次序以及random shuffle隨機化打亂順序。reverse template class bidirectionaliterator void reverse bid...

字典序演算法

字典序排列就是按照字典a z,1 9的順序給出字串的順序全排列,例如abc的全排列就是從abc一直排到cba。那麼給定乙個字串,怎麼找出恰好大於該字串的下乙個排列呢?我們考慮如下的步驟 1 假設字串為p1 p2 pn 我們從後往前尋找第乙個符合pj j 1條件的字元pj 也就是說,p1 p2 pj ...