Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int permute_this(int *array, int size, int count) {
- int k, x, tmp;
- if (size < 6)
- return 0;
- k = size -2;
- while ( k >= 0 && array[k] > array[k+1]) {
- --k;
- }
- if (k < 0)
- return 0;
- x = size-1;
- while (array[k] > array[x]){
- --x;
- }
- tmp = array[k];
- array[k] = array[x];
- array[x] = tmp;
- x = size-1;
- ++k;
- while (k <= x) {
- if (array[k] > array[x]) {
- tmp = array[k];
- array[k] = array[x];
- array[x] = tmp;
- }
- ++k;
- --x;
- }
- count = count +1;
- printf("Count: %d ", count);
- for (int i=0; i < size; ++i)
- printf(" %d ", array[i]);
- printf("\n");
- if (count == 500) {
- return 0;
- }else{
- permute_this(array, size, count);
- }
- }
- int main() {
- int size_in;
- printf("\nEnter the n value to which to permute to: ");
- scanf("%d", &size_in);
- int array[size_in];
- int i, count=1;
- for (i = 0; i < size_in; i++)
- array[i] = i+1;
- for (i = 0; i < size_in; i++)
- printf("%d ", array[i]);
- printf("\n");
- permute_this(array, size_in, count);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement