#include<stdio.h>#include<malloc.h>int len;
int count = 0;
void swap(int *a, int *b)
{int tem;tem = *a;*a = *b;*b = tem;
}bool clap(int * ar, int be, int en)
{if(en > be){for(int i = be; i < en; i++){if(ar[i] == ar[en])returnfalse;}}returntrue;
}void fullypai(int * arr, int beg, int end)
{if (beg == end){for(int i = 0; i < len; i++){printf("%d ", arr[i]);}printf("\n");++count;}else{for(int i = beg; i < end; i++){if(clap(arr, beg, i)){swap(arr+beg, arr+i);fullypai(arr, beg+1, end);swap(arr+beg, arr+i);}}}
}int main()
{printf("please input a number len and an array include len element:\n");scanf("%d\n", &len);int * array = (int *)malloc(sizeof(int) * len);for(int i = 0; i < len; i++){scanf("%d", &array[i]);}printf("\n");fullypai(array, 0, len);printf("totle:%d\n",count);return0;
}
2、從0到n-1中隨機(jī)等概率輸出m個(gè)不重復(fù)的數(shù)
void knuth(int n,intm)
{srand((unsigned int)time(0));for(int i = 0;i<n;i++){if(rand()%(n-i)<m){cout<<i<<endl;m--;}}
}
#include<iostream>#include<algorithm>usingnamespacestd;
int find(intlist[], int ele, int length)
{constint s = 0;constint e = length;int start = s;int end = e;while(start <= end){int tem = (start+end)/2;if(list[tem] == ele){cout << "The element is in the list" << endl;return1;}if(list[tem] > ele){end = tem-1;}if(list[tem] < ele){start = tem+1;}}cout << "The element is not in the list" << endl;return1;
}
int main()
{int a[4] = {2, 8, 5, 7};int len = sizeof(a)/sizeof(a[1]);int x;cin >> x;sort(a, a+4);find(a, x, len);return0;
}