Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std ;
- /*
- sort function use kore sort kora hoise ekhane , tobe jehetu sort function ta ekta normal integer type er array er upor kaj na kore struct typ er data er upore kaj kortese,
- so ekhane sort function by default vabe kokhonoi bujte parbe na je kisher vitti te amader ke sort kora lagbe , amader je priority variable er vitti te sort kora proyojon seta
- sort function take amader bujhano lagbe , r sort function ta ke eta bujhanor jonno process name er struct er vitor ekta operator overloading function likte hoise,
- sort jokhon kora hoy tokhon oviously 2 ta data er vitore comparison hobe (lyk bubble sort e pasha pashi 2 ta data er moddhe comparison hoito) r ei comparison ta korar tym e
- < ei sign ta use kora hoye thake , karon ei sign use kora chara amra comparison korte parbo na data er vitore,,, so ekhaneo sort function sort korar tym e ei sign use kore ,,, but
- ei sign ta kivabe kaj korbe seta amdr ke bole dite hobe operator function leikha.etake bole operator overloading. jokhon 2 ta data er vitor comparison hobe tokhon < ei sign ta
- oi 2 ta data er moddhe apply korar por jokhon operator function er value true return hobe thik tokhon e oi 2 ta data er moddhe swap hobe karon amra jani swap chara sorting
- possible na , r eikhane operator function er vitore shei kaj ta e kora hoise. eikhane const process &p etar mane hocche process type er ekta constant pointer newa hoise .
- jokhon 2 ta data er moddhe comparison hobe tokhon shei 2 tar moddhe jeta array te serially age asbe seta ke point korbe ei p pointer ta , r serially jeta pore asbe seta
- ke point korbe shei pointer ta jeta ei function ta kei call korlo , tar mane p hoilo ekhane first diker index(karon array te serially age asche) r jei object ta function
- ta ke call korlo se hoilo second diker index(karon eta array te serially pore ase),,so amader target hocche amra first diker index ke point kora object er priority er value
- jodi second diker index ke point kora object er priority er value theke boro hoy taile amra return true korabo r true return korlei tader moddhe swap hobe ,then swap houar
- por jar priority value kom chilo se samne chole asbe r jar beshi chilo se pore chole jabe ,, tar mane evabe kore ei code e priority er vitti te ascending order e sort
- hocche array ta
- */
- struct process{
- int processId , priority ;
- bool operator < (const process &p) const{
- if(p.priority>priority) { /*prothom tar priority jodi porer tar priority theke boro hoy taile if er vitore dhuika return true korbe and er pore swap o korbe tar mane kom priority jetar seta samne chole gelo r beshi priority er ta pore chole gelo r evabei ascending sort hocche */
- return true ;
- }
- else{
- return false ; /* r jodi prothom tar priority kom e thake taile false return korabo and kono swap o hobe na false return koraile , er mane tader ordering ta thik ase already */
- }
- }
- };
- int main(void){
- int n ;
- process List[100]; // process typ er array
- cout<<"Enter the number of process : " ;
- cin>>n ;
- cout<<"Enter the process no. and priority no. : "<<endl ;
- for(int i = 0 ; i<n ; i++){
- process p ; // process typ er variable
- int procId , priorityId ;
- cin>>procId>>priorityId ;
- p.processId = procId ;
- p.priority = priorityId ;
- List[i] = p ;
- }
- sort(List+0 , List+n) ; // List array tar 0 theke n index porjonto sort korte chacchi tai 0 r n + akare liksi evabe sort function likte hoy
- cout<<endl;
- for(int i = 0 ; i<n ; i++){
- cout<<List[i].processId<<" "<<List[i].priority<<endl ;
- }
- return 0 ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement