print all permutations of a given string. A permutation, also called an “arrangement number” or “order,” is a rearrangement of the elements of an ordered list S into a one-to-one correspondence with S itself. A string of length n has n! permutation.
# include <stdio.h>
void swap ( char *x, char *y)
{
char temp;
temp = *x;
*x = *y;
*y = temp;
}
void permute( char *a, int i, int n)
{
int j;
if (i == n)
printf ( "%s\n" , a);
else
{
for (j = i; j <= n; j++)
{
swap((a+i), (a+j));
permute(a, i+1, n);
swap((a+i), (a+j));
}
}
}
int main()
{
char a[] = "ABC" ;
permute(a, 0, 2);
getchar ();
return 0;
}
|
2. find the sum of contiguous subarray within a one-dimensional array of numbers which has the largest sum.
#include<stdio.h>
int maxSubArraySum( int a[], int size)
{
int max_so_far = 0, max_ending_here = 0;
int i;
for (i = 0; i < size; i++)
{
max_ending_here = max_ending_here + a[i];
if (max_ending_here < 0)
max_ending_here = 0;
if (max_so_far < max_ending_here)
max_so_far = max_ending_here;
}
return max_so_far;
}
int main()
{
int a[] = {-2, -3, 4, -1, -2, 1, 5, -3};
int max_sum = maxSubArraySum(a, 8);
printf ( "Maximum contiguous sum is %d\n" , max_sum);
getchar ();
return 0;
}
|
posted on 2012-07-05 17:51
鹰击长空 阅读(302)
评论(0) 编辑 收藏 引用