10_2C.C
上传用户:wyn840322
上传日期:2007-01-13
资源大小:294k
文件大小:2k
源码类别:

数据结构

开发平台:

C/C++

  1. /* ======================================== */
  2. /*    程序实例: 10_2c.c                    */
  3. /*    冒泡排序法(另一种方法)                */
  4. /* ======================================== */
  5. #include <stdlib.h>
  6. #define MAX  20                   /* 最大字符串长度           */
  7. /* ---------------------------------------- */
  8. /*  冒泡排序法                              */
  9. /* ---------------------------------------- */
  10. void bubble(char *string,int count)
  11. {
  12.    int i,done;
  13.    char temp;
  14.    done = 0;                      /* 建立变量               */
  15.    while ( !done )
  16.    {
  17.       done = 1;
  18.       for ( i = 0; i < count - 1; i++ ) /* 第二层循环       */
  19.          if ( string[i+1] < string[i] ) /*比较相邻的数组元素*/
  20.          {
  21.             temp = string[i+1];   /* 交换两字符             */
  22.             string[i+1] = string[i];
  23.             string[i] = temp;
  24.             done = 0;             /* 有交换                 */
  25.          }
  26.       if ( !done )
  27.          /* 输出交换后字符串 */
  28.          printf("输出结果: [%s]n",string);
  29.    }
  30. }
  31. /* ---------------------------------------- */
  32. /*  主程序: 输入字符串後将字符串排序           */
  33. /* ---------------------------------------- */
  34. void main()
  35. {
  36.    char string[MAX];              /* 字符串数组               */
  37.    int count;                     /* 字符串长度               */
  38.    printf("输入要排序的字符串 ==> ");
  39.    gets(string);                  /* 读取字符串               */
  40.    count = strlen(string);        /* 计算字符串长度           */
  41.    bubble(string,count);          /* 冒泡排序法             */
  42.    /* 输出排序后字符串 */
  43.    printf("n输出排序结果: [%s]n",string);
  44. }