Void main(). cout << " next_permutation(a, a + m);" << endl;

{

const int m = 3;

int a[m]={1, 4, 2}, b[m];

int i;

copy(a, a + m, b);

cout << " next_permutation(a, a + m);" << endl;

while (next_permutation(a, a + m))

{

for (i = 0; i < m; i++) cout << a [ i ] << " ";

cout << endl;

}

cout << " prev_permutation(b, b + m);" << endl;

while (prev_permutation(b, b + m))

{

for (i = 0; i < m; i++) cout << b [ i ] << " ";

cout << endl;

}

}

 

Результат роботи програми:

next_permutation(a, a + m):

2 1 4

2 4 1

4 1 2

4 2 1

prev_permutation(b, b + m):

1 2 4

 

Алгоритмиpartial_sort, partial_sort_copy.

Алгоритм partial_sort також виконує часткове сортування послідовності.

Після виконання алгоритму елементи від first до middle розташовуватимуться в такому ж порядку, як після повного сортування.

Алгоритм partial_sort_copy виконує ті ж дії з копією послідовності.

 

tempiate<class Ran>

void partial_sort(Ran first, Ran middle, Ran last);

template<class Ran, class Compare>

void partial_sort(Ran first, Ran middle,

Ran last, Compare comp);

template<class In, class Ran>

Ran partial_sort_copy(In first, In last,

Ran result_first, Ran result_last);

template<class In, class Ran, class Compare>

Ran partial_sort_copy(In first, In last,

Ran result_first, Ran result_last, Compare comp);

 

Часткове сортування економить час в тих випадках, коли нас цікавлять тільки декілька найбільших або найменших значень, наприклад, "гаряча десятка".

 

#include <iostream>

#include <functional>

#include <algorithm>

using namespace std;

 








Дата добавления: 2014-12-26; просмотров: 578;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.