赞
踩
/******************************************************************************************* ** 函 数名 称: CompareString() ** 作 者: zyh ** 版 本: 1.0.0 ** 日 期: 2011-6-20 ** 功 能 描 述: 输入n个字符串,从小到大输出 ** 被本函数调用的函数清单: ** 调用本函数的函数清单: ** 被访问的表: ** 被修改的表 : ** 输 入: char *string_array_in[] --- 输入数组 int total --- 数组元素个数 ** 输 出: char *string_array_out[] --- 输出结果数组 ** 返 回 值: 无 ** 其 他: ** 修 改 历史: 1. 修改时间: 修 改 者: 版 本: 修改简述: 2. ...... *********************************************************************************************/ void CompareString(char *string_array_in[], char *string_array_out[], int total) /* 实质上是选择排序法 */ { int liv_i ; /* 挨个元素查找,比较轮数,N个元素比较N-1轮 */ int liv_j; /* 第i个元素比较N-1-i次 */ int small; /* 选择排序法,存放最小元素的下标 */ char *temp; /* 交换临时变量 */ for (liv_i = 0; liv_i < total -1; liv_i++) { small = liv_i; for (liv_j = liv_i+1; liv_j < total; liv_j++) { if ( strcmp(string_array_in[liv_j],string_array_in[small]) <0 ) /* 不能用 if (string_array_in[liv_j] < string_array_in[small] ) */ { small = liv_j; } } if (small != liv_i) { temp = string_array_in[small]; string_array_in[small] = string_array_in[liv_i]; string_array_in[liv_i] = temp; } } for (liv_i = 0; liv_i < total; liv_i++) { string_array_out[liv_i] = string_array_in[liv_i]; } }