तारीख (Date) दिन, महीना और वर्ष की संख्या है। तारीख प्रदर्शित करने के विभिन्न तरीके हैं।
यहां, हमारे पास सिलेक्शन सॉर्ट का उपयोग करके तारीखों को सॉर्ट करने का एक प्रोग्राम है। तो आइए इस अवधारणा में उपयोग की जाने वाली चीजों के बारे में जानें।
तारीखों को सॉर्ट करना
तारीखों को सॉर्ट करने की अवधारणा के लिए तारीखों और उनके सत्यापन का स्पष्ट और अच्छी तरह से ज्ञान होना आवश्यक है। इससे पहले कि हम सॉर्टिंग तकनीक का प्रयास करें, हमें यह जांचना होगा कि उपयोगकर्ता द्वारा इनपुट की गई तारीख वैध है या नहीं, जैसे 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