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

C++の選択ソートを使用して文字列の配列をソートする


選択ソートアルゴリズムは、ソートされていない部分からベースコンポーネントを検索し、それを先頭に配置することで、展示を複数回ソートします。決定ソートの各強調では、ソートされていないサブアレイからの基本コンポーネントが選択され、配置されたサブアレイに移動されます。

#include <iostream>
#include <string.h>
using namespace std;
#define MAX_LEN 50
void selectionSort(char arr[][50], int n){
   int i, j, mIndex;
   // Move boundary of unsorted subarray one by one
   char minStr[50];
   for (i = 0; i < n-1; i++){
      // Determine minimum element in unsorted array
      int mIndex = i;
      strcpy(minStr, arr[i]);
      for (j = i + 1; j < n; j++){
         // check whether the min is greater than arr[j]
         if (strcmp(minStr, arr[j]) > 0){
            // Make arr[j] as minStr and update min_idx
            strcpy(minStr, arr[j]);
            mIndex = j;
         }
      }
      // Swap the minimum with the first element
      if (mIndex != i){
         char temp[50];
         strcpy(temp, arr[i]); //swap item[pos] and item[i]
         strcpy(arr[i], arr[mIndex]);
         strcpy(arr[mIndex], temp);
      }
   }
}
int main(){
   char arr[][50] = {"Tom", "Boyaka", "Matt" ,"Luke"};
   int n = sizeof(arr)/sizeof(arr[0]);
   int i;
   cout<<"Given String is:: Tom, Boyaka, Matt, Luke\n";
   selectionSort(arr, n);
   cout << "\nSelection Sorted is::\n";
   for (i = 0; i < n; i++)
      cout << i << ": " << arr[i] << endl;
   return 0;
}

上記のC++プログラムは、最初に展示内の最小のコンポーネントを選択し、それをクラスター内の主成分と交換します。次に、クラスター内の2番目に小さいコンポーネントを後続のコンポーネントなどと交換します。このようにして、パスごとに、展示内の最小のコンポーネントが選択され、クラスター全体が配置されるまで正当な状況に置かれます。最後に、section sortメソッドは、指定された文字列を次のように昇順で並べ替えます。

出力

Given string is:: Tom, Boyaka, Matt, Luke
Selection Sorted::
Boyaka
Luke
Matt
Tom

  1. 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

  2. ヒープソートアルゴリズムを使用して10個の要素の配列をソートするC++プログラム

    ヒープソートは、バイナリヒープデータ構造に基づいています。バイナリヒープでは、親ノードの子ノードは最大ヒープの場合はそれ以下であり、親ノードの子ノードは最小ヒープの場合はそれ以上です。 ヒープソートのすべてのステップを説明する例は次のとおりです。 並べ替え前の10個の要素を含む元の配列は-です 20 7 1 54 10 15 90 23 77 25 この配列は、max-heapifyを使用してバイナリ最大ヒープに組み込まれています。配列として表されるこの最大ヒープは、次のように与えられます。 90 77 20 54