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

選択ソートを使用して日付をソートするためのC++プログラム


日付 は日、月、年の数です。日付を表示するにはさまざまな方法があります。

ここに、選択ソートを使用して日付をソートするプログラムがあります。それでは、この概念で使用されているものについて学びましょう。

並べ替え日

日付の並べ替えの概念には、日付とその検証に関する明確で精通した知識が必要です。並べ替えの手法を試す前に、ユーザーが入力した日付が有効な日付であるかどうかを確認する必要があります。29-2は、うるう年にのみ有効です。

日付の検証後、日付の並べ替えが行われます。並べ替えについては、年の並べ替え、同じ年の並べ替え月、同じ月の並べ替えの日付を逆順に並べ替えます。

選択ソート

選択ソートは、最小要素を見つけて配列の先頭に配置し、配列を短縮することによって要素をソートするソートアルゴリズムです。したがって、各要素をそれぞれの場所に昇順で配置します。

このプログラムは、ユーザーが入力した日付を並べ替えるために選択並べ替え手法を使用します。

順序付けられていない形式で3つの日付を取得し、これらの日付を並べ替えてみましょう。

Input :
4  1  2012
31 5  2019
19 12 2012

Output :
4  1  2012
19 12 2012
31 5  2019

説明

すべての日付が有効であるため、プログラムはこれらの日付を並べ替え、昇順で並べ替えます。

#include<iostream>
using namespace std;
struct date{
   int day;
   int month;
   int year;
   int valid = 1;
};
int datevalidate(int dd, int mm, int yy){
   if(yy>=100 && yy<=9999){
      if(mm>=1 && mm<=12){
         if((dd>=1 && dd<=31) && (mm==1 || mm==3 || mm==5 || mm==7 || mm==8 || mm==10 || mm==12));
            else if((dd>=1 && dd<=30) && (mm==4 || mm==6 || mm==9 || mm==11));
               else if((dd>=1 && dd<=28) && (mm==2));
                  else if(dd==29 && mm==2 && (yy%400==0 ||(yy%4==0 && yy%100!=0)));
            else
               return 0;
            } else{
            return 0;
         }
      } else {
      return 0;
   }
}
int main(){
   cout<<"Enter 5 dates to be sorted:\n";
   struct date input[5];
   for(int i=0; i<5; i++){
      cout<<"Enter Date "<<(i+1)<<" : ";
      cin>>input[i].day;
      cin>>input[i].month;
      cin>>input[i].year;
      input[i].valid = datevalidate(input[i].day, input[i].month, input[i].year);
      if(input[i].valid){
         cout<<"Date is invalid";
         exit(0);
      }
   }
   for (int i=0; i<4; i++){
      for (int j=i+1; j<5; j++){
         if (input[i].year > input[j].year){
            struct date temp = input[i];
            input[i] = input[j];
            input[j] = temp;
         }
         else if (input[i].year == input[j].year && input[i].month > input[j].month){
            struct date temp = input[i];
            input[i] = input[j];
            input[j] = temp;
         }
         else if (input[i].year == input[j].year && input[i].month == input[j].month && input[i].day > input[j].day){
            struct date temp = input[i];
            input[i] = input[j];
            input[j] = temp;
         }
      }
   }
   cout<<"Sorted dates are : \n";
   for(int i=0; i<5; i++){
      cout<<input[i].day<<" "<<input[i].month<<" "<<input[i].year;
      cout<<endl;
   }
}

出力

Enter 5 dates to be sorted:
Enter date 1 : 5 12 2019
Enter date 2 : 1 2 2012
Enter date 3 : 11 6 2324
Enter date 4 : 29 2 2652
Enter date 5 : 16 5 2012
Sorted dates are :
1 2 2012
16 5 2012
5 12 2019
11 6 2324
29 2 2652

  1. 選択ソートを実装するC++プログラム

    選択ソート手法では、リストは2つの部分に分割されます。ある部分ではすべての要素がソートされ、別の部分ではアイテムはソートされていません。最初に、アレイから最大または最小のデータを取得します。データ(最小など)を取得した後、最初のデータを最小データに置き換えて、リストの先頭に配置します。実行後、配列は小さくなっています。したがって、このソート手法が実行されます。 選択ソート手法の複雑さ 時間計算量:O(n 2 ) スペースの複雑さ:O(1) Input − The unsorted list: 5 9 7 23 78 20 Output − Array

  2. 選択ソート用のPythonプログラム

    この記事では、Python3.xでの選択ソートとその実装について学習します。またはそれ以前。 選択ソート アルゴリズムでは、配列は、ソートされていない部分から最小要素を再帰的に見つけて、それを先頭に挿入することによってソートされます。特定の配列での選択ソートの実行中に、2つのサブ配列が形成されます。 すでにソートされているサブアレイ ソートされていないサブアレイ。 選択ソートを繰り返すたびに、ソートされていないサブアレイの最小要素がポップされ、ソートされたサブアレイに挿入されます。 アルゴリズムの視覚的表現を見てみましょう- それでは、アルゴリズムの実装を見てみましょう- 例