Advertisement
coloriot

HA12_permutations

Jun 26th, 2024
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. // Перестановки
  2.  
  3. void swap(int &a, int &b) {
  4.     int temp = a;
  5.     a = b;
  6.     b = temp;
  7. }
  8.  
  9. // Это чтобы показывать перестановки
  10. void print_permutation(int arr[], int size) {
  11.     for (int i = 0; i < size; ++i) {
  12.         std::cout << arr[i] << " ";
  13.     }
  14.     std::cout << std::endl;
  15. }
  16.  
  17. // Производить перестановки
  18. void generate_permutations(int arr[], int size, int n) {
  19.     if (size == n) {
  20.         print_permutation(arr, n);
  21.     } else {
  22.         for (int i = size; i < n; ++i) {
  23.             swap(arr[size], arr[i]);
  24.             generate_permutations(arr, size + 1, n);
  25.             swap(arr[size], arr[i]); // backtrack
  26.         }
  27.     }
  28. }
  29.  
  30. int main() {
  31.     int n;
  32.     std::cout << "Enter the number of elements: ";
  33.     std::cin >> n;
  34.     int arr[n];
  35.     for (int i = 0; i < n; ++i) {
  36.         arr[i] = i + 1;
  37.     }
  38.     generate_permutations(arr, 0, n);
  39.     return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement