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

数据结构

开发平台:

C/C++

  1. /* ======================================== */
  2. /*    程序实例: 10_3.c                    */
  3. /*    选择排序法                            */
  4. /* ======================================== */
  5. #include <stdlib.h>
  6. #define MAX  20                   /* 最大字符串长度         */
  7. /* ---------------------------------------- */
  8. /*  选择排序法                              */
  9. /* ---------------------------------------- */
  10. void select(char *string,int count)
  11. {
  12.    int pos;                       /* 目前最小的字符       */
  13.    int i,j;
  14.    char temp;
  15.    for ( i = 0; i < count - 1; i++ )  /* 第一层循环       */
  16.    {
  17.       pos = i;
  18.       temp = string[pos];
  19.       /* 查找最小的字符 */
  20.       for ( j = i + 1; j < count; j++ ) /* 第二层循环    */
  21.          if ( string[j] < temp )        /* 是否更小       */
  22.          {
  23.             pos = j;              /* 新的最小字符         */
  24.             temp = string[j];
  25.          }
  26.       string[pos] = string[i];    /* 交换两字符           */
  27.       string[i] = temp;
  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.    select(string,count);          /* 选择排序法           */
  42.    /* 输出排序后字符串 */
  43.    printf("n输出排序结果: [%s]n",string);
  44. }