یہ ٹول کیسے کام کرتا ہے
دونوں دستاویزوں کا موازنہ عبارت کے بجائے ساخت کے اعتبار سے ہوتا ہے، دونوں درختوں پر ساتھ ساتھ چلتے ہوئے، اور ہر فرق اپنے راستے کے ساتھ بتایا جاتا ہے۔ یہی چیز نتیجے کو کارآمد بناتی ہے: فائل کو دوبارہ ترتیب دینا، اس کی کلیدیں آگے پیچھے کرنا یا وقفہ بندی بدلنا کوئی فرق پیدا نہیں کرتا، جبکہ عبارت کا موازنہ پوری فائل کو بدلی ہوئی بتا دیتا۔
تین ترتیبیں بدلتی ہیں کہ فرق کیا شمار ہو۔ صف کی ترتیب نظر انداز کرنا صفوں کا موازنہ مجموعوں کے طور پر کرتا ہے، جو نشانات کی فہرست کے لیے درست ہے اور کسی ترتیب والے سلسلے کے لیے غلط۔ ڈھیلا قسمی موازنہ سٹرنگ 1 اور عدد 1 کو برابر سمجھتا ہے، جو اس وقت کارآمد ہے جب ایک طرف کا ڈیٹا ایسے نظام سے گزرا ہو جو ہر چیز کو سٹرنگ بنا دیتا ہے۔ غیر تبدیل شدہ قدریں دکھانا نتیجے کو صرف فرق بتانے کے بجائے مکمل کر دیتا ہے۔
موازنہ پڑھنا
- راستے یہ بتاتے ہیں کہاں، یہ نہیں کہ کیوں: ہر فرق درخت میں اپنے مقام سے بتایا جاتا ہے، اور سورس میں اسے ڈھونڈنے کے لیے آپ کو یہی چاہیے۔ دو دستاویزیں ایک ہی خانے میں پچاس راستوں پر مختلف ہو سکتی ہیں اگر وہ خانہ دہرایا جاتا ہو۔
- جب تک آپ نہ کہیں، صف کی ترتیب اہمیت رکھتی ہے: طے شدہ طور پر جو عنصر اپنی جگہ سے ہلا وہ ایک فرق ہے۔ ترتیب والی فہرست کے لیے یہ درست ہے اور بغیر ترتیب والی کے لیے شور۔
- قسم کی تبدیلیاں بھی تبدیلیاں شمار ہوتی ہیں: جو خانہ پہلے عدد تھا اور اب سٹرنگ ہے وہ مختلف ہے خواہ چھپا ہوا ایک جیسا لگے، اور یہی وہ خرابی ہے جسے پکڑنا واقعی فائدہ مند ہے۔
- یہ ڈیٹا کا موازنہ کرتا ہے، ترتیب کا نہیں: خالی جگہ، کلیدوں کی ترتیب اور وقفہ بندی اسے نظر ہی نہیں آتیں۔ اگر آپ ترتیب ہی جانچ رہے ہوں تو عبارت کا موازنہ استعمال کریں۔