انضمام کی طرح کیا ہے؟ ضم کریں ترتیب موازنہ پر مبنی چھانٹ رہا الگورتھم ہے جو تقسیم اور فتح والے زمرے سے تعلق رکھتا ہے۔ ضم کو ترتیب دینے کا استعمال تقسیم اور فتح کی حکمت عملی پر مبنی ایک صف کو ترتیب دینے کے لئے کیا جاتا ہے جسے اس پوسٹ میں مختصر طور پر اس کے الگورتھم جیسے دوسرے تصورات کے ساتھ احاطہ کیا جائے گا۔ ہم C ++ میں انضمام کی طرح کی پیچیدگی کو بھی دیکھیں گے
اس مضمون میں مندرجہ ذیل نکات کا احاطہ کیا جائے گا ،
- تقسیم اور فتح الگورتھم
- ایک مثال کے ساتھ ضم کریں الگورتھم کو سمجھنا
- سییوکوڈ برائے ضم شدہ ترتیب
- مرجع ترتیب کے لئے C ++ میں پروگرام
- مرجع ترتیب کیلئے وقت کی پیچیدگی
اس مضمون کے ساتھ آگے بڑھتے ہوئے C ++ میں ضم کریں
تقسیم اور فتح الگورتھم
اگر آپ پہلے سے ہی واقف ہیں کہ کوئکسورٹ کس طرح کام کرتا ہے تو آپ تقسیم اور فتح کی حکمت عملی سے بخوبی واقف ہوں گے۔ تقسیم اور فتح میں تین بڑے اقدامات شامل ہیں۔ ان اقدامات کو سمجھنے کے لئے آئیے ایک اشارے ہیلو پر غور کریں [] انڈیکس شروع کرنے کے بعد ‘ایک’ اور اختتام پذیر انڈیکس ‘این’ ہے لہذا ہم اپنی صف کو مندرجہ ذیل طریقے سے لکھ سکتے ہیں ہیلو [ا & ہیلپ.. این]
تقسیم divide تقسیم اور فتح کا اولین اقدام یا دیئے گئے دشواری کو ذیلی پریشانیوں یا ذیلی حصوں میں تقسیم کرنا ہے۔ یہاں کیچ یہ ہے کہ ذیلی پریشانیوں کو اصل دشواری جیسا ہونا چاہئے اور جس کا سائز چھوٹا ہونا چاہئے۔ ہمارے معاملے میں ہم اپنی صف کو 2 حصوں [a & hellip.m] [m + 1 & hellip..n] m میں تقسیم کریں گے جس میں ایک اور n انڈیکس ہے۔
فتح - ایک بار جب ہم اپنے مسئلے کو ذیلی پریشانیوں میں بانٹ دیتے ہیں۔ ہم ان سب مشکلات کو بار بار حل کرتے ہیں۔
یکجا - اس اقدام میں ، ہم اپنے سب مسائل کے حل کو ایک مناسب انداز میں یکجا کرتے ہیں۔ دوسرے الفاظ میں ، ہم 2 الگ الگ ترتیب شدہ ارے کو اکٹھا کرکے ایک ترتیب شدہ سرنی تشکیل دیتے ہیں۔ وہاں ہمارے پاس ترتیب شدہ صف ہے۔
اس مضمون کے ساتھ آگے بڑھتے ہوئے C ++ میں ضم کریں
ایک مثال کے ساتھ ضم شدہ ترتیب الگورتھم کو سمجھنا
اس مقام پر ، ہم جانتے ہیں کہ انضمام کی ترتیب کے ذریعہ کون سا نقطہ نظر استعمال ہوگا۔ لہذا ، آئیے ایک مثال پر غور کریں اور ہیلو [] کی ترتیب سے ترتیب شدہ سرنی میں ترتیب سے ہر قدم کو دیکھیں۔
مثال- ہیلو [10 ، 3 ، 7 ، 1 ، 15 ، 14 ، 9 ، 22]
مذکورہ شبیہہ میں ، ہم ایک غیر ترتیب شدہ صف پر غور کیا اور ایک ترتیب شدہ سرنی حاصل کرنے کیلئے انضمام کی طرح استعمال کیا۔ اب ، آئیے ہر قدم پر نگاہ ڈالیں اور پوری الگورتھم کو سمجھیں
1. پہلے ، ہم نے ایک صف کو ہیلو سمجھا [10 ، 3 ، 7 ، 1 ، 15 ، 14 ، 9 ، 22] اس صف میں کل 8 عنصر موجود ہیں
As. جیسا کہ ہم نے پہلے دیکھا ہے کہ انضمام کی ترتیب عناصر کو ترتیب دینے کے ل the تقسیم اور فتح کے نقطہ نظر کا استعمال کرتی ہے۔ ہمیں ایم ملا جو ہماری صف کے بیچ میں ہے اور اپنی صف کو وسط سے تقسیم کیا ہے جہاں m = (a - n) / 2 'a' بائیں بازو کے عنصر کا اشاریہ ہے اور n ہمارے صف کے دائیں جانب کے عنصر کا اشاریہ ہے .
3. پہلی تقسیم کے بعد ، ہمارے پاس 2 حصے ہیں جن میں 4 عنصر شامل ہیں۔ آئیے پہلے نصف [10، 3، 7، 1] کو دیکھیں۔
سرنی جاوا میں سب سے بڑی تعداد تلاش کرنا
We. ہم [10 ، 3 ، 7 ، 1] کو 2 حصوں [10 ، 3] اور [7 ، 1] میں تقسیم کرتے ہیں۔ اس کے بعد ہم ان کو مزید [10] ، [3] ، [7] ، [1] میں تقسیم کرتے ہیں۔ مزید تقسیم ممکن نہیں ہے کیونکہ ہم میٹر کا حساب نہیں لگا سکتے ہیں۔ ایک ہی عنصر پر مشتمل ایک فہرست کو ہمیشہ ترتیب دینے پر غور کیا جاتا ہے۔
mer. ملانے کا طریقہ کیسے ہوتا ہے؟ آئیے معلوم کریں۔ پہلے [10] اور [3] کا موازنہ کیا جاتا ہے اور چڑھتے ترتیب میں ملا دیا جاتا ہے [3، 10] اسی طرح سے ہمیں ملتا ہے [1، 7]
6. اس کے بعد ، ہم [3 ، 10] اور [1 ، 7] کا موازنہ کرتے ہیں۔ ایک بار موازنہ کرنے کے بعد ہم ان کو چڑھتے ترتیب میں ضم کرتے ہیں اور ہمیں [1، 3، 7، 10] مل جاتا ہے۔
7. [15 ، 14 ، 9 ، 2] بھی اسی طرح تقسیم اور مشترکہ ہے [9 ، 14 ، 15 ، 22]۔
8. آخری مرحلے میں ہم موازنہ اور جوڑ دیتے ہیں [15 ، 14 ، 9 ، 2] [9 ، 14 ، 15 ، 22] تاکہ ہمیں اپنی ترتیب دیںیعنی [1 ، 3 ، 7 ، 9 ، 10 ، 14 ، 15 ، 22]۔
اس مضمون کے ساتھ آگے بڑھتے ہوئے C ++ میں ضم کریں
سییوکوڈ برائے ضم شدہ ترتیب
اگر چھوڑ دیا تو شروع کریںفنکشن مئرسورٹ () مستقل طور پر اپنے آپ کو ہماری صف میں تقسیم کرنے کا مطالبہ کرتا ہے یہاں تک کہ یہ ایک عنصر بن جائے اور فنکشن انضمام () کو ترتیب شدہ صفوں کو ضم کرنے کے لئے استعمال نہ کیا جائے۔
اس مضمون کے ساتھ آگے بڑھتے ہوئے C ++ میں ضم کریں
سی ++ میں ترتیب دیں پروگرام ترتیب دیں
# شامل کریں # شامل کریں # نام کی جگہ کا استعمال کرتے ہوئے ایس ٹی باطل انضمام (انٹ اے فر [] ، فرسٹائنڈیکس ، انٹ ایم ، انٹ لسٹینڈیکس) // ضمنی صفوں کو ضم کر دیتا ہے جو بنائے جاتے ہیں جبکہ ڈویژن باطل انضمام (int a [] ، int فرسٹ انڈیکس ، انٹ لاسٹ انڈیکس) {اگر (فرسٹ انڈیکس)سائز انٹ ہیلو [سائز] ، میں نے کہا<<'Enter the elements of the array one by one:n' for(i=0 i>ہیلو [i] انضمام کریں (ہیلو ، 0 ، سائز - 1) کوٹ<<'The Sorted List isn' for(i=0 i آؤٹ پٹ-
اس مضمون کے ساتھ آگے بڑھتے ہوئے C ++ میں ضم کریں
وقت کی پیچیدگی
جب ہم الگورتھم کے بارے میں بات کرتے ہیں تو وقت کی پیچیدگی پر ایک اہم پہلو پر غور کرنا چاہئے۔ دوسرے ترتیب دینے والے الگورتھموں کے مقابلے میں مرج س sortرٹ میں زبردست وقت کی پیچیدگی سمجھی جاتی ہے۔
خراب ترین معاملہ چلانے کا وقت- O (n لاگ این)
وقت چلانے کا بہترین معاملہ- O (n لاگ این)
اوسط چلنے کا وقت- O (n لاگ این)اس کے ساتھ ، ہم C ++ آرٹیکل میں اس ضم شدہ ترتیب کو ختم کرتے ہیں۔ اگر آپ مزید جاننا چاہتے ہیں تو ، چیک کریں ایڈورکا ، ایک قابل اعتماد آن لائن سیکھنے کی کمپنی کے ذریعے۔ ایڈورکا کا جاوا J2EE اور SOA ٹریننگ اور سرٹیفیکیشن کورس آپ کو ہائبرنیٹ اور اسپرنگ جیسے جاوا کے مختلف فریم ورکوں کے ساتھ ساتھ جاوا کے دونوں بنیادی تصورات کی تربیت کے لئے ڈیزائن کیا گیا ہے۔
ہمارے لئے ایک سوال ہے؟ برائے کرم اس بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد از جلد آپ کے پاس مل جائیں گے۔