C++ میں stable_sort() فنکشن کا استعمال کیسے کریں۔

C My Stable Sort Fnkshn Ka Ast Mal Kys Kry



ترتیب کے عناصر کو مخصوص ترتیب میں ترتیب دینے کے لیے C++ میں مختلف فنکشنز ہیں۔ sort فنکشن کی طرح، stable_sort کا استعمال رینج (پہلے، آخری) میں عناصر کو ترتیب دینے کے لیے کیا جاتا ہے۔ ان کے درمیان اہم فرق یہ ہے کہ stable_sort مساوی اقدار کے ساتھ عناصر کے رشتہ دار ترتیب کو برقرار رکھتا ہے۔

اس تفصیلات کے ٹیوٹوریل میں، ہم اس کے کام کو دکھائیں گے۔ stable_sort() C++ میں۔

C++ میں stable_sort() فنکشن کا استعمال کیسے کریں۔

C++ میں، stable_sort() ایک معیاری لائبریری الگورتھم ہے جو عناصر کو بڑھتی ہوئی ترتیب میں ترتیب دیتا ہے اور مساوی عناصر کے لیے وہی ترتیب رکھتا ہے۔ اس کا مطلب یہ ہے کہ اگر دو عناصر برابر ہیں، تو وہ عنصر جو ترتیب دینے سے پہلے کنٹینر میں پہلے ظاہر ہوتا ہے پھر بھی ترتیب شدہ فہرست میں پہلے ظاہر ہوگا۔ یہ فنکشن کنٹینر کو بار بار تقسیم کر کے کام کرتا ہے (ارے، ویکٹر، منسلک فہرستیں)، انہیں الگ الگ ترتیب دے کر، اور پھر ترتیب شدہ کنٹینر حاصل کرنے کے لیے ان کو ملا کر۔ کے تحت آتا ہے۔ <الگورتھم> ہیڈر فائل.







استعمال کرنے کے لیے عمومی نحو stable_sort() C++ میں ہے:



stable_sort ( RandomAccessIterator پہلے ، RandomAccessIterator آخری ) ;

یہاں، دی پہلا رینج کے پہلے عنصر کی طرف اشارہ کرنے والا تکرار کنندہ ہے جس کو ترتیب دیا جانا ہے، اور آخری رینج میں آخری عنصر کے بعد عنصر کی طرف اشارہ کرنے والا تکرار کنندہ ہے۔



دی stable_sort() فنکشن رینج میں اندراجات کو ترتیب دینے کے لیے غیر کم ہونے والی ترتیب کا استعمال کرتا ہے [پہلی، آخری]، یعنی چھوٹے سے بڑے عنصر تک۔ فنکشن بطور ڈیفالٹ آئٹمز کا موازنہ کرتا ہے۔ آپریٹر سے کم (<)۔





مثال 1

مندرجہ ذیل مثال کے کوڈ پر غور کریں، اس کوڈ میں، ہم نے بنایا ہے۔ ویکٹر کی فہرست اور اسے کچھ اقدار کے ساتھ شروع کیا۔ اگلا، ہم نے استعمال کیا stable_sort() دیے گئے ویکٹر کی قدروں کو صعودی ترتیب میں ترتیب دینا۔ غیر ترتیب شدہ اور ترتیب شدہ ویکٹر رینج پر مبنی لوپ کا استعمال کرتے ہوئے کنسول پر پرنٹ کیے جاتے ہیں۔

# شامل کریں

#شامل <ویکٹر>

#include

نام کی جگہ کا استعمال کرتے ہوئے std ;



int مرکزی ( )

{

ویکٹر < int > فہرست = { 5 ، 2 ، 25 ، 4 ، 9 ، 33 ، 38 ، 26 } ;

cout << 'چھانٹنے سے پہلے نمبر:' ;

ہر ایک کے لئے ( فہرست شروع ( ) ، فہرست اختتام ( ) ، [ ] ( int ایکس ) {

cout << ایکس << ' ;

} ) ;

stable_sort ( فہرست شروع ( ) ، فہرست اختتام ( ) ) ;

cout << ' \n چھانٹنے کے بعد نمبر: ' ;

ہر ایک کے لئے ( فہرست شروع ( ) ، فہرست اختتام ( ) ، [ ] ( int ایکس ) {

cout << ایکس << ' ;

} ) ;



واپسی 0 ;

}




مثال 2

ذیل میں دی گئی مثال میں، ہم نے ایک عددی صف بنائی ہے اور اسے کچھ اقدار کے ساتھ شروع کیا ہے۔ پھر بطور ڈیفالٹ، the stable_sort() عناصر کو صعودی ترتیب میں ترتیب دیتا ہے:

# شامل کریں

#include

نام کی جگہ کا استعمال کرتے ہوئے std ;

int مرکزی ( )

{

int صف [ ] = { 12 ، 7 ، 7 ، 1 ، 8 ، 7 ، 3 ، 4 ، 22 ، 0 } ;

int n = کا سائز ( صف ) / کا سائز ( صف [ 0 ] ) ;

cout << 'اصل صف یہ ہے: \n ' ;

کے لیے ( int میں = 0 ; میں < n ; ++ میں ) {

cout << صف [ میں ] << ' ;

}

stable_sort ( صف ، صف + n ) ;

cout << ' \n ترتیب دینے کے بعد صف یہ ہے: \n ' ;

کے لیے ( int میں = 0 ; میں < n ; ++ میں ) {

cout << صف [ میں ] << ' ;

}

واپسی 0 ;

}

مثال 3

دی stable_sort عنصر کو ترتیب دینے کے لیے ترتیب کی وضاحت کرنے کے لیے تیسرا پیرامیٹر لیتا ہے۔ مندرجہ ذیل مثال میں، ہم نے استعمال کیا ہے زیادہ () کے ساتھ فنکشن stable_sort() صف کے عناصر کو نزولی ترتیب میں ترتیب دینا

# شامل کریں

#include

نام کی جگہ کا استعمال کرتے ہوئے std ;

int مرکزی ( )

{

int صف [ ] = { 12 ، 7 ، 7 ، 1 ، 8 ، 7 ، 3 ، 4 ، 22 ، 0 } ;

int n = کا سائز ( صف ) / کا سائز ( صف [ 0 ] ) ;

cout << 'اصلی صف: \n ' ;

کے لیے ( int میں = 0 ; میں < n ; ++ میں ) {

cout << صف [ میں ] << ' ;

}

stable_sort ( صف ، صف + n ، زیادہ < int > ( ) ) ;

cout << ' \n ترتیب دینے کے بعد صف: \n ' ;

کے لیے ( int میں = 0 ; میں < n ; ++ میں ) {

cout << صف [ میں ] << ' ;

}

واپسی 0 ;

}

نیچے کی لکیر

دی stable_sort() C++ میں فنکشن ایک معیاری لائبریری الگورتھم ہے جو ایک کنٹینر میں عناصر کو غیر کم ہونے والی ترتیب میں ترتیب دینے کے لیے استعمال کیا جاتا ہے جبکہ ایک ہی قدروں والے کنٹینر میں عناصر کی نسبتی ترتیب کو برقرار رکھتے ہیں۔ اسے مختلف کنٹینرز جیسے ارے، ویکٹر اور منسلک فہرستوں کے ساتھ استعمال کیا جا سکتا ہے۔ مزید برآں، عناصر کو چھانٹنے کے لیے ترتیب کی وضاحت کرنے کے لیے تیسرا پیرامیٹر لگتا ہے۔