چھانٹ رہا ہے اعداد و شمار پر لاگو سب سے بنیادی اور مفید کام ہے۔ اس کا مقصد کسی خاص فیشن میں ڈیٹا کا بندوبست کرنا ہے ، جو تقاضوں کے مطابق بڑھتا یا کم ہوسکتا ہے۔ سی ++ ایس ٹی ایل میں ’سوٹ ()‘ کے نام سے ایک بلٹ ان فنکشن موجود ہے جو ہمیں الگورتھم کو آسانی سے ترتیب دینے کی سہولت دیتا ہے۔ اس مضمون میں ہم سی ++ میں ترتیب دیں فنکشن کی تلاش کریں گے ،
مندرجہ ذیل اشارے اس مضمون میں شامل کیے جائیں گے:
جاوا میں پیلنڈروم کی جانچ کیسے کریں
- () فنکشن کو ترتیب دیں
- مثال کے طور پر - اوپر کی ترتیب میں اعداد و شمار کو ترتیب دینے کے لئے
- مثال - نزول ترتیب میں ڈیٹا کو ترتیب دینے کے لئے
- جزوی_حل
اس مضمون کے ساتھ سی ++ میں ترتیب دیں فنکشن پر آگے بڑھ رہے ہیں
ترتیب دیں ( ) تقریب
یہ الگورتھم ہیڈر فائل کا ایک بلٹ ان فنکشن ہے جس کا استعمال کنٹینرز کو سرنی کی طرح ترتیب دینے کے لئے استعمال کیا جاتا ہے ، ایک مخصوص ترتیب میں ویکٹر۔ اندرونی طور پر اس فنکشن کو کوئیک سورس کے بطور لاگو کیا جاتا ہے
کوئکسورٹ ایک تقسیم اور فتح الگورتھم ہے۔ کوئکسورٹ پہلے عناصر کی ایک بڑی فہرست کو دو چھوٹے ذیلی فہرستوں میں تقسیم کرتا ہے: نچلے عناصر اور اعلی عناصر۔ کوئکسورٹ پھر بار بار ذیلی فہرستوں کو ترتیب دیں۔
اقدامات مندرجہ ذیل ہیں:
1. فہرست سے ایک بے ترتیب عنصر (عام طور پر آخری عنصر) کو منتخب کریں ، جسے محور کہا جاتا ہے۔
the. اس فہرست کو اس طرح سے ترتیب دیں کہ محور سے کم اقدار والے تمام عنصر محور سے پہلے آجائیں ، جب کہ محور سے زیادہ اقدار والے تمام عنصر اس کے بعد آتے ہیں اور مساوی اقدار کسی بھی طرح سے جاسکتی ہیں اس عمل کو پارٹیشن آپریشن کہتے ہیں۔
les. کم عناصر کی ذیلی فہرست اور زیادہ سے زیادہ عناصر کی ذیلی فہرست کو بار بار ترتیب دیں ، ذیلی فہرست میں ایک محور کو دوبارہ منتخب کریں اور ان کو تقسیم کریں۔
تکرار کا بنیادی معاملہ سائز صفر یا ایک کی فہرست ہے ، جسے کبھی ترتیب دینے کی ضرورت نہیں ہے اور اس طرح ان کو جوڑ کر ہم اپنی فہرست کو ترتیب دیتے ہیں۔
کوئکسورٹ عملی طور پر دوسرے O (n log n) الگورتھم جیسے Insertion Sort یا بلبلا ترتیب سے تیز ہے۔ کوئکسورٹ کو جگہ جگہ الگ الگورتھم کے ساتھ نافذ کیا جاسکتا ہے جس کا مطلب ہے کہ پوری طرح صرف او (لاگ این) اضافی جگہ کے ساتھ کی جاسکتی ہے۔ کوئکسورٹ مستحکم ترتیب نہیں ہے۔
اس کی پیچیدگی اس طرح ہے:
بہترین معاملہ - O (n لاگ این)
بدترین کیس - O (n ^ 2)
اوسط کیس - O (n لاگ این)
نحو:
ترتیب دیں (پہلا ، آخری)
یہاں ،
پہلا - ترتیب دینے کی حد میں پہلے عنصر کا اشاریہ (پوائنٹر) ہے۔
آخری - ترتیب دینے کی حد میں آخری عنصر کا اشاریہ (پوائنٹر) ہے۔
مثال کے طور پر ، ہم ایک صف 'آرر' کے عناصر کو 1 سے 10 پوزیشن تک ترتیب دینا چاہتے ہیں ، ہم چھانٹ (آر آر ، آر + + 10) استعمال کریں گے اور اس سے 10 عناصر کو ترتیب وار ترتیب میں ترتیب دیا جائے گا۔
واپسی کی قیمت
کوئی نہیں
پیچیدگی
اوسطا پیچیدہ پیچیدگی N * log2 (N) ہے ، جہاں N = آخری - پہلے۔
ڈیٹا کی حد
رینج میں موجود آبجیکٹ [پہلے ، آخری) میں ترمیم کی گئی ہے۔
مستثنیات
ٹیمپلیٹ پیرامیٹر کے ساتھ اوورلوڈز جنہیں ایگزیکیوشن پولسی رپورٹ کی غلطیوں کا نام دیا گیا ہے۔
اگر الگورتھم میموری کو مختص کرنے میں ناکام ہوجاتا ہے تو ، std :: Bad_alloc ایک استثناء کے طور پر پھینک دیا جاتا ہے۔
اگر کسی فعل کی تعمیل الگورتھم کے حصے کے طور پر کی گئی ہو تو یہ استثناء کو پھینک دیتا ہے std :: خاتمہ۔
اس مضمون کے ساتھ سی ++ میں ترتیب دیں فنکشن پر آگے بڑھ رہے ہیں
مثال - ڈیٹا کو چڑھتے ترتیب میں ترتیب دینا:
# نام کی جگہ ایس ٹی ڈی انٹ مین () {انٹ سرنی [] = {10، 35، 85، 93، 62، 77، 345، 43، 2، 10} int n = sizeof (سرنی) / سائز اف (سرنی [0] کا استعمال کرتے ہوئے # شامل کریں ) // 'sizeof' کل صف کی شکل دیتا ہے یعنی ہر کردار کا سائز * نہیں۔ حروف کی // تاکہ کوئی نہ ہو۔ حروف کا // ہم سائز (صف) کو سرنی کے کسی ایک حرف کے سائز کے ساتھ تقسیم کرتے ہیں // یہ صف ہے [0] ترتیب (سرنی ، سرنی + این) cout<< 'nArray after sorting using ' 'default sort is : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 }
آؤٹ پٹ:
وضاحت
مذکورہ بالا مثال سے ، ہم دیکھتے ہیں کہ اس طرح کی () فنکشن ڈیفالٹ کے ذریعہ ایک سرنی کو چڑھتے ترتیب میں ترتیب دیتا ہے۔
اس مضمون کے ساتھ سی ++ میں ترتیب دیں فنکشن پر آگے بڑھ رہے ہیں
مثال - ڈیٹا کو نزولی ترتیب میں ترتیب دینے کے لئے:
ترتیب کے اعداد و شمار کو ترتیب دیتے ہوئے ترتیب دینے کے ل we ہمیں ایک تیسرا پیرامیٹر متعارف کرانے کی ضرورت ہے جو اس ترتیب کی وضاحت کے لئے استعمال ہوتا ہے جس میں عناصر کو ترتیب دیا جانا ہے۔ ہم ڈیٹا کو نزولی ترتیب میں ترتیب دینے کے لئے 'زیادہ سے زیادہ ()' فنکشن کا استعمال کرسکتے ہیں۔
کس طرح ڈبل سے انٹ جاوا میں تبدیل کریں
# نام کی جگہ ایس ٹی ڈی انٹ مین () {انٹ سرنی [] = {41، 53، 4، 459، 60، 7، 23، 4، 232، 10} int n = sizeof (سرنی) / سائز اف (سرنی [0] کا استعمال کرتے ہوئے # شامل کریں ) ترتیب دیں (سرنی ، سرنی + این ، زیادہ ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 }
آؤٹ پٹ:
ختم l anation
یہاں ترتیب دیں () فنکشن ایک موازنہ اس انداز میں کرتا ہے کہ اس سے پہلے زیادہ عنصر رکھتا ہے۔
اس مضمون کے ساتھ سی ++ میں ترتیب دیں فنکشن پر آگے بڑھ رہے ہیں
جزوی_حل
سی ++ ایس ٹی ایل ہمیں جزوی چھانٹنے والی تقریب مہیا کرتا ہے ، فنکشن () فنکشن کی طرح ہے لیکن ترتیب () فنکشن کے برعکس یہ پوری رینج کو ترتیب دینے کے لئے استعمال نہیں ہوتا ہے بلکہ اس کے صرف ایک ذیلی حصے کو ترتیب دینے کے لئے استعمال ہوتا ہے۔ یہ [اول ، آخری) کی حد میں عناصر کو اس طرح ترتیب دیتا ہے کہ مشرق عنصر سے پہلے کے عناصر کو چڑھتے ترتیب میں ترتیب دیا جاتا ہے ، جبکہ وسط کے بعد کے عناصر جیسا کہ رہ جاتے ہیں۔
اس کا استعمال سب سے بڑے عنصر کو تلاش کرنے کے لئے کیا جاسکتا ہے اگر ہم پہلی پوزیشن کی ترتیب کے ل a کسی فنکشن آبجیکٹ کا استعمال کریں
مثال
# شامل کریں # شامل کریں # نام کی جگہ ایس ڈی انٹ مین () ct ویکٹر ویکٹر کا استعمال کرتے ہوئے = {10، 45، 60، 78، 23، 21، 30} ویکٹر :: دوبارہ کرنے والا iptr جزوی_سورٹ (vec.begin ()، vec.begin () + 1 ، vec.end () ، زیادہ ()) iptr = vec.begin () cout<< 'The largest element is = ' << *iptr return 0 }
آؤٹ پٹ:
وضاحت:
مندرجہ بالا کوڈ سیریز میں سب سے بڑی تعداد تلاش کرنے کے لئے استعمال کیا جاسکتا ہے ، سیریز میں سب سے چھوٹی تعداد تلاش کرنے کے لئے ہمیں صرف زیادہ سے زیادہ کمانڈ کو ہٹانے کی ضرورت ہے۔
اس طرح ہم ‘C ++ میں ترتیب دیں فنکشن’ کے بارے میں اس مضمون کے اختتام کو پہنچے ہیں۔ اگر آپ مزید معلومات حاصل کرنا چاہتے ہیں تو ، ایک قابل اعتماد آن لائن سیکھنے والی کمپنی ، ایڈیورکا کے ذریعہ جاوا ٹریننگ دیکھیں۔ ایڈورکا کی کورس آپ کو ہائبرنیٹ اور اسپرنگ جیسے جاوا کے مختلف فریم ورکس کے ساتھ ساتھ دونوں بنیادی اور اعلی درجے کی جاوا کے تصورات کی تربیت کے لئے ڈیزائن کیا گیا ہے۔
ہمارے لئے ایک سوال ہے؟ برائے کرم اس بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد سے جلد آپ کے پاس مل جائیں گے۔