C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++で1つの文字列を別の文字列にコピーせずに、文字列の配列をソートされた順序で出力します


ある文字列を別の文字列にコピーせずに、並べ替えられた順序で文字列の配列を出力する問題では、文字列の配列を並べ替える必要があります。ここで、プログラマーはソート中に文字列を別の文字列にコピーすることはできません。

概念をよりよく理解するために例を見てみましょう:

Input : {“Delhi”, “Hyderabad”, “Indore”, “Mumbai”, “Banglore”}
Output : Banglore, Delhi, Hyderabad, Indore, Mumbai

説明 −辞書式順序付けが行われます。したがって、Bで始まるバンガロールが最初になり、Mで始まるムンバイが最後になります。

それでは、問題の解決策を導き出してみましょう。

この問題を解決するには、文字列の位置を実際に変更するには対処が必要なため、これらの文字列の正しいインデックスを格納する配列を作成できます。したがって、これは問題を解決するための1つの可能な方法です。

インデックス配列を使用し、並べ替え手法を使用して並べ替えてから印刷します。ここでは、直接比較を使用する選択ソート手法を使用します。

それでは、動作を説明するプログラムを作成しましょう-

#include <iostream>
using namespace std;
void sortedStringArray(string arr[], int n){
   int stringIndex[n];
   int i, j, min;
   for (i=0; i<n; i++)
   stringIndex[i] = i;
   for (i=0; i<n-1; i++){
      min = i;
      for (j=i+1; j<n; j++){
         if (arr[stringIndex[min]].compare(arr[stringIndex[j]]) > 0)
            min = j;
      }
      if (min != i){
         int temp = stringIndex[min];
         stringIndex[min] = stringIndex[i];
         stringIndex[i] = temp;
      }
   }
   for (i=0; i<n; i++)
      cout << arr[stringIndex[i]] << ", ";
}
int main(){
   string arr[] = {"Delhi", "Hyderabad", "Indore", "Mumbai", "Banglore"};
   int n = 5;
   sortedStringArray(arr, n);
   return 0;
}

出力

Banglore, Delhi, Hyderabad, Indore, Mumbai,

  1. バイナリツリーレベルをC++でソートされた順序で出力します

    この問題では、二分木が与えられ、すべてのノードを値の並べ替えられた順序でレベルで出力する必要があります。 概念をよりよく理解するために例を見てみましょう。 入力 − 出力 − 20 6 15 2 17 32 78 この問題を解決するには、ツリーの各レベルのソートされた順序を印刷する必要があります。このために、キューと2つの優先キューを作成する必要があります。 NULLセパレータは、2つのレベルを分離するために使用されます。 例 論理を説明するプログラム- #include <iostream> #include <queue> #include <

  2. C++での文字列の配列

    文字列の配列は、stringキーワードを使用してC++で作成できます。ここでは、このアプローチを使用したC++プログラムについて説明しています。 アルゴリズム Begin Initialize the elements of array by string keyword. And take string as input. Print the array. End. サンプルコード #include<iostream> #include<bits/stdc++.h> using namespace std; int main() {   &nbs