1、簡單的字元串排序
給定有限個字元串,将其按照大小順序排列。此時的大小順序簡單來說我們可以先認為是ASCLL碼的大小順序。由此我們隻需要比較字元串的ASCLL碼的大小即可。
2、算法設計
1、輸入10個字元串;
2、任選一種排序算法對字元串排序,比較時需要使用strcmp, 複制時需要使用strcpy。
3、輸出排序後的結果。
3、算法優化
字元串比較使用strcmp無法優化, 但每次将字元串整體複制,交換值,效率偏低,使用字元指針數組存儲每個字元串的位址,排序時交換指針性能更好。
4、C語言代碼執行個體
#include<stdio.h>
#include <string.h>
//微信公衆号:C語言與CPP程式設計 2020.05.02
int main()
{
int i, j;
char str[10][50], temp[50];
printf(“輸入10個單詞:\n”);
for(i=0; i<10; ++i) {
scanf("%s[^\n]",str[i]);
}
for(i=0; i<9; ++i) {
for(j=i+1; j<10 ; ++j)
{
if(strcmp(str[i], str[j])>0)
{
strcpy(temp, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], temp);
}
}
}
printf("\n排序後: \n");
for(i=0; i<10; ++i)
{
puts(str[i]);
}
return 0;
輸入如下所示:
C
C++
Java
PHP
Python
Perl
Ruby
R
JavaScript
輸出如下所示: