Computer >> Máy Tính >  >> Lập trình >> Lập trình

Sắp xếp chuỗi theo chuỗi chữ và số


Danh sách các chuỗi đã cho được sắp xếp theo thứ tự chữ và số hoặc Thứ tự từ điển. Giống như các từ sau:Apple, Book, Aim, chúng sẽ được sắp xếp thành Aim, Apple, Book. Nếu có một số số, chúng có thể được đặt trước các chuỗi chữ cái.

Đầu vào và Đầu ra

Input:
A list of strings: Ball Apple Data Area 517 April Man 506
Output:
Strings after sort: 506 517 Apple April Area Ball Data Man

Thuật toán

sortStr(strArr, n)

Đầu vào: Danh sách tất cả các chuỗi, số phần tử.

Đầu ra - Các chuỗi được sắp xếp theo thứ tự chữ và số.

Begin
   for round := 1 to n-1, do
      for i := 0 to n-round, do
         res := compare str[i] and str[i+1]       //either +ve, or –ve or 0
         if res > 0, then
            swap str[i] and str[i+1]
      done
   done
End

Ví dụ

#include<iostream>
#define N 8
using namespace std;

void display(int n, string str[]) {
   for(int i = 0; i<n; i++)
      cout << str[i] << " ";         //print the string from array
   cout << endl;
}

void sortStr(int n, string str[]) {
   int i, round, res;
   for(round = 1; round<n; round++)
      for(i = 0; i<n-round; i++) {
         res = str[i].compare(str[i+1]);
         if(res > 0)
            swap(str[i], str[i+1]);//swap strings
      }
}

main() {
   string str[N] = {"Ball", "Apple", "Data", "Area", "517", "April", "Man", "506"};
   cout << "Strings before sort:"<< endl;
   display(N, str);
   sortStr(N, str);
   cout << "Strings after sort:"<<endl;
   display(N, str);
}

Đầu ra

Strings before sort:
Ball Apple Data Area 517 April Man 506
Strings after sort:
506 517 Apple April Area Ball Data Man