C 字符串数组排序的小例子

时间:2021-05-20

复制代码 代码如下:
#include<stdio.h>
#include<string.h>
#include <malloc.h>
void q_sortB(char str[20][20], int n);
void qs(char str[20][20],int n);

void main() {
int i, n;
char str[20][20] = { { "Adam" }, { "Bob" }, { "Dimen" }, { "Colin" }, {
"Correal" }, { "Sick" }, { "Rachel" } };

char * str1[20]= { { "Adam" }, { "Bob" }, { "Dimen" }, { "Colin" },
{ "Correal" }, { "Sick" }, { "Rachel" } };
qs(str,7);
q_sortB(str, 7);
for (i = 0; i < 7; i++){
printf("%s\n", str[i]);
}


}

void qs(char str[20][20],int n){
char temp[20];
int i=0;
int j=0;
int min=i;
for(i=0;i<n-1;i++){
min=i;
for(j=i;j<n;j++){//本次找最小值的范围是从i开始 到最末尾
if( strcmp(str[j],str[min])==-1 ){
min=j;
}
}
//此时min指向最小的
//那么应该把min放在已排序部分的后一个//也就是本次排序的第一个
strcpy(temp,str[i]);
strcpy(str[i],str[min]);
strcpy(str[min],temp);

}
}

//泡泡
void q_sortB(char str[20][20], int n) {
char a[20];
int i, j;
for (i = 0; i < n-1; i++) {
for (j = i ; j < n-1; j++)
if (strcmp(str[j], str[j + 1]) > 0) {
strcpy(a, str[j]);
strcpy(str[j], str[j + 1]);
strcpy(str[j+1], a);
}
}

}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章