ٻن سٽون استعمال ڪندي بلبل جي قسم


تڪليف جي سطح آسان
بار بار پڇڻ ۾ Amazon ڪيپسيميني دهلي ايم
ڪيريو ترتيب ڏيڻ

مسئلي جو بيان

مسئلو ”بلبل جي قسم کي ٻه اسٽيڪ استعمال ڪندي” ٻڌائي ٿي ته توهان کي هڪ ڏني وئي آهي صف سائيز جي [] [n]. بلڊنگ جي ترتيب واري نموني کي ٻن اسٽيڪ ڊيٽا جي اڏاوتن سان استعمال ڪندي ترتيب واري ترتيب کي ترتيب ڏيڻ لاءِ فنڪشن ٺاهيو

ٻن سٽون استعمال ڪندي بلبل جي قسم

مثال

a[ ] = {15, 12, 44, 2, 5, 10}
2 5 10 12 15 44
a[ ] = {5, 6, 4, 2, 3, 1}
1 2 3 4 5 6

الورورٿم

  1. شروعات ڪريو هڪ صف سائيز جي [] [n].
  2. فنڪشن ٺاھيو ترتيب ڏيو ڏنل صف هڪ [] استعمال ڪندي بلبل جي ترتيب ٻن جو مثال اسٽيڪ ڊيٽا جي اڏاوتون جيڪي منظوري کي قبول ڪن ٿيون ۽ انهي جو سائز آهي جيئن ته اهو پيمائٽر آهي.
  3. جو اسٽيڪ ڊيٽا جو انچو ٺاهيو انٽرويو قسم. ڏنل ڏنل صف ذريعي ٻاھريو ۽ صف ۾ سڀني عناصر کي دٻايو.
  4. ساڳي طرح انٽيگر قسم جي هڪ ٻئي اسٽيڪ ڊيٽا جي جوڙجڪ ٺاهيو.
  5. هن کان پوءِ 0 کان ن -1 تائين سفر ڪيو. چڪاس ڪريو ته ڇا موجوده انڊيڪس موڊ 2 0 جي برابر آهي ، ٻيهر پيچرو ڪريو جڏهن ته پهرين اسٽيڪ خالي ناهي.
  6. انٽيگر متغير ٺاهيو ۽ پهرين اسٽيڪ جي چوٽي تي عنصر کي پاپ ڪريو ۽ ان کي اسٽور ڪريو.
  7. چيڪ ڪريو ته ٻئي اسٽيڪ خالي آهي ، ٻي اسٽڪ ۾ انوگر متغير کي دٻايو / داخل ڪريو. ٻئي صورت ۾ چيڪ ڪريو ته ٻئي اسٽيڪ جي چوٽي تي عنصر انٽيگر متغير کان وڏو آهي ، هڪ عارضي متغير ٺاهيو ، ٻئي اسٽيڪ جي چوٽي تي عنصر کي پاپ ڪريو ۽ عارضي متغير ۾ محفوظ ڪريو. ٻئين اسٽيڪ ۾ انڌيري متغير کي زور ڏيو. ان کان پوءِ ، ٻئي اسٽيڪ ۾ عارضي متغير کي دٻايو.
  8. ٻئي صورت ۾ جيڪڏهن ٻئي اسٽيڪ جي چوٽي تي عنصر انيتري متغير کان گهٽ يا برابر آهي ، انٽيڪ متغير کي اسٽيڪ ۾ دٻايو.
  9. ٻئي اسٽاپ جي چوٽي کي پاپ ڪريو ۽ ان کي قطار ۾ محفوظ ڪريو a [] انڊيڪس n-1-موجوده انڊيڪس تي.
  10. ٻئي صورت ۾ جيڪڏهن هاڻوڪي انڊيڪس Mod 2 برابر برابر آهي 0 ، رستو جڏهن ته ٻئي اسٽيڪ خالي ناهي.
  11. انٽيگر متغير ٺاهيو ۽ ٻئي اسٽيڪ جي چوٽي تي عنصر کي پاپ ڪريو ۽ ان ۾ اسٽور ڪريو.
  12. پهرين اسٽيڪ خالي آهي چيڪ ڪريو ، پهرين اسٽيڪ ۾ انوگر متغير کي دٻايو / داخل ڪريو. ايلس چيڪ ڪريو ته پهرين اسٽيڪ جي مٿان عنصر انٽيگر متحرڪ کان وڏو آهي ، هڪ عارضي متغير ٺاهيو ، پهرين اسٽيڪ جي چوٽي تي عنصر کي پاپ ڪريو ۽ عارضي متغير ۾ محفوظ ڪريو. پهرين اسٽيڪ ۾ انڌيري متغير کي زور ڏيو. ان کان پوءِ ، پهرين اسٽيڪ ۾ عارضي متغير کي دٻايو.
  13. ٻي صورت ۾ جيڪڏهن پهرين اسٽيڪ جي مٿين حصي تي عنصر انيتر متغير کان گهٽ يا برابر آهي ، انٽيڪ متغير کي اسٽيڪ ۾ دٻايو.
  14. پهرين اسٽيڪ جي چوٽي تي پاپ ڪريو ۽ صف ۾ هڪ کي محفوظ ڪريو [] انڊيڪس n-1-موجوده انڊيڪس تي.
  15. ترتيب واري ترتيب کي پرنٽ ڪر.

ڪوڊ

C ++ پروگرام ٻن اسٽڪن کي استعمال ڪندي بلبل جي ترتيب کي لاڳو ڪرڻ

#include <bits/stdc++.h>
using namespace std;

void bubbleSortStack(int a[], int n){ 
    stack<int> s1;
      
    for(int i = 0; i < n; i++){ 
        s1.push(a[i]);
    }
      
    stack<int> s2;
      
    for(int i = 0; i < n; i++){ 
        
        if(i % 2 == 0){ 
            while (!s1.empty()){ 
                int t = s1.top();
                s1.pop(); 
                  
                if(s2.empty()){ 
                    s2.push(t);  
                }
                
                else{ 
                    
                    if(s2.top() > t){ 
                        int temp = s2.top(); 
                        s2.pop(); 
                        s2.push(t); 
                        s2.push(temp); 
                    } 
                    
                    else{ 
                        s2.push(t); 
                    } 
                } 
            } 
            a[n-1-i] = s2.top();
            s2.pop(); 
        }     
        
        else{
            
            while(!s2.empty()){ 
                int t = s2.top();
                s2.pop();
                  
                if (s1.empty()){ 
                    s1.push(t); 
                }
                  
                else{ 
                    
                    if (s1.top() > t){ 
                        int temp = s1.top();
                        s1.pop(); 
                          
                        s1.push(t); 
                        s1.push(temp); 
                    } 
                    
                    else{
                        s1.push(t); 
                    }
                } 
            } 
              
            a[n-1-i] = s1.top();
            s1.pop(); 
        } 
    }
    
    for(int i = 0; i < n; i++){
        cout<< a[i] << " "; 
    }
} 
  
int main() {
  int a[] = {15, 12, 44, 2, 5, 10};
  int n = sizeof(a)/sizeof(a[0]);
    
  bubbleSortStack(a, n); 
    
  return 0;
}
2 5 10 12 15 44

جاوا پروگرام ٻن اسٽيڪن کي استعمال ڪندي بلبل جي ترتيب کي لاڳو ڪرڻ

import java.util.Arrays; 
import java.util.Stack; 
  
class Sort{ 
    
    static void bubbleSortStack(int a[], int n){ 
        Stack<Integer> s1 = new Stack<>(); 
          
        for(int num : a){ 
            s1.push(num);
        }
          
        Stack<Integer> s2 = new Stack<>(); 
          
        for(int i = 0; i < n; i++){ 
            
            if(i % 2 == 0){ 
                while (!s1.isEmpty()){ 
                    int t = s1.pop(); 
                      
                    if(s2.isEmpty()){ 
                        s2.push(t);  
                    }
                    
                    else{ 
                        
                        if(s2.peek() > t){ 
                            int temp = s2.pop(); 
                            s2.push(t); 
                            s2.push(temp); 
                        } 
                        
                        else{ 
                            s2.push(t); 
                        } 
                    } 
                } 
                a[n-1-i] = s2.pop(); 
            }     
            
            else{
                
                while(!s2.isEmpty()){ 
                    int t = s2.pop(); 
                      
                    if (s1.isEmpty()){ 
                        s1.push(t); 
                    }
                      
                    else{ 
                        
                        if (s1.peek() > t){ 
                            int temp = s1.pop(); 
                              
                            s1.push(t); 
                            s1.push(temp); 
                        } 
                        
                        else{
                            s1.push(t); 
                        }
                    } 
                } 
                  
                a[n-1-i] = s1.pop(); 
            } 
        }
        
        for(int i = 0; i < n; i++){
            System.out.print(a[i]+" "); 
        }
    } 
      
    public static void main(String[] args){
        
        int a[] = {15, 12, 44, 2, 5, 10};
        
        bubbleSortStack(a, a.length); 
    } 
}
2 5 10 12 15 44

پيچيدگي تجزيي

وقت جي پيچيدگي

اي (ن ^ 2) جتي اين ڏنل عدد ۾ عدد جو تعداد آهي []. اھو عام طور تي بلبل ترتيب مان گھربل وقت جي پيچيدگي آھي.

خلائي پيچيدگي

اي (ن) ڇاڪاڻ ته اسان اين عنصرن لاءِ جاءِ استعمال ڪئي. اسٽوريج لاءِ اها اسٽوريج گهربل آهي.