< 2012年7月 >
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

# 网页收藏

•

### 评论排行榜

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    /* Function to swap values at two pointers */ void swap (char *x, char *y) {     char temp;     temp = *x;     *x = *y;     *y = temp; }     /* Function to print permutations of string    This function takes three parameters:    1. String    2. Starting index of the string    3. Ending index of the string. */ 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)); //backtrack        }    } }     /* Driver program to test above functions */ 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 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; }    /*Driver program to test maxSubArraySum*/ 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 鹰击长空 阅读(294) 评论(0)  编辑 收藏 引用

 只有注册用户登录后才能发表评论。