#include <stdio.h>
int data[4] = {1, 1, 2, 2};
/*数据互换*/
void swap(int data[], int index, int i) {
int temp = data[index];
data[index] = data[i];
data[i] = temp;
}
/*是否已有*/
int isEquals(int data[], int index, int i) {
int j;
for (j = index; j < i; j++) {
if (data[j] == data[i]) return 1;
}
return 0;
}
/*递归求解,逐个打头*/
void fullArray(int data[], int index, int tail) {
if (index == tail) {
int i;
for (i = 0; i <= tail; i++) {
printf("%d", data[i]);
}
printf("\n");
} else {
int i;
for (i = index; i <= tail; i++) {
if (!isEquals(data, index, i)) {
swap(data, index, i);
fullArray(data, index+1, tail);
swap(data, index, i);
}
}
}
}
int main() {
fullArray(data, 0, 3);
return 0;
}
重复元素全排列
最新推荐文章于 2021-04-03 12:18:48 发布