For example:input "ab",output"aa,ab,ba,bb"
#include<stdlib.h>
#include<stdio.h>
int result[10];
void findAllArrang(char* str, int size, int index){
if(index == size){
int i = 0;
for(; i < size; i++){
printf("%c",result[i]);
}
printf("\n");
return;
}
int j = 0;
for(; j < size; j++){
result[index] = str[j];
findAllArrang(str, size, index + 1);
}
}
int findMid(char array[], int start, int end){
int temp =array[start];
while(start < end){
if(start < end && array[end] >= temp){
end--;
}
array[start] = array[end];
if(start < end && array[start] <= temp){
start++;
}
array[end] = array[start];
}
array[start] = temp;
return start;
}
void quickSort(char array[], int start, int end){
if(start < end){
int mid = findMid(array, start, end);
quickSort(array,start,mid-1);
quickSort(array,mid+1,end);
}
}
int main(){
char str[3] = {'c','b','a'};
quickSort(str,0,2);
findAllArrang(str, 3, 0);
}
#include<stdlib.h>
char c[4] = "1234";
char output[3];
void find(char* c, int len, int index, char* output)
{
int i;
if(index < 0)
{
printf("%s\n",output);
return;
}
for(i = 0; i < len; i++)
{
output[index] = c[i];
find(c, len, --index, output);
output[index++] = ' ';
}
}
int main()
{
find(c, 4, 2, output);
}