天天看點

字元串排序-C語言執行個體

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

輸出如下所示: