سوفٹ ویئر انجینئری اور تنصیب کار
کوڈنگ انٹرویو کامیابی کے لیے بڑے پیمانے پر نوٹ کرنا
Table of Contents
بڑے پیمانے پر کیا ہے؟
بڑے پیمانے پر نوٹ ایک ریاضیاتی فریم ورک ہے جو کمپیوٹر سائنس میں استعمال کیا جاتا ہے [FLT] ایک عملہ کی کارکردگی میں اضافہ کرتا ہے جیسے کہ آپس میں بڑھتی ہوئی مقدار۔ فارمل کے ساتھ ایک ہیل کو اوپر رکھتا ہے
کوڈ کے انٹرویو میں، بڑے ای میں، کارکردگی کے لیے سب سے عام ذریعہ ہے. انٹرویو لینے والوں سے آپ اپنے حل کی تصدیق کرنے کی توقع کرتے ہیں اور جب ممکن ہو،
کوڈنگ انٹرویو میں بڑے بڑے معاملات
انٹرویو دینے والے الجبرا کے مسائل کو صرف دیکھنے کے لیے نہیں ہوتے اگر آپ کام کا حل نکال سکتے ہیں، بلکہ آپ کے مسائل کو حل کرنے کے لیے بھی بڑے پیمانے پر کام کرنے کے عمل کا جائزہ لیتے ہیں۔ بڑے بڑے پیمانے پر آپ جب آپ اپنے رسائی کی پیچیدگیوں کا وقت بتاتے ہیں تو آپ کو اس طرح کے مسائل کا احساس ہوتا ہے
مزید یہ کہ بِنگ او کے بارے میں آپ مختلف قسم کی سہولیات کے درمیان میں استدلال کر سکتے ہیں. مثال کے طور پر، اضافی یادداشت (space) کو چلانے کے لیے استعمال کریں وقت (وقت) ایک کلاسیکی انٹرویو کا نمونہ ہے.
عام وقت کی پیچیدہ مثالیں
O (1) – قسطنطنیہ وقت –
ایک الموت مسلسل چلتا ہے جب اس کا وقت ان پٹ سائز پر منحصر نہیں ہوتا Ex Spemp: ایک عنصر تک رسائی حاصل کرنا جسے مجموعی طور پر انڈیکس سے حاصل کیا جاتا ہے اگر قطروں میں 10 یا 10 ملین عناصر ہوں تو اس کی جانچ مشین کے وہی نمبر لے لیتی ہے۔
def get_first(arr):
return arr[0] # O(1)
O(log n) – لاگریتھک وقت –
لاگریتھک پیچیدگی اس وقت پیدا ہوتی ہے جب الجبرا بار بار داخلی حجم کو دوباره تبدیل کرتا ہے۔ Ex empal: بینکاری تلاش کرنے والا دائرہ نما حصوں پر مشتمل ہوتا ہے۔ہر محیط حصہ نصف النہار سے بچ جاتا ہے، اس طرح عمل کے عملے کی تعداد لاگ2(n) کے لیے متعین ہوتی ہے۔
def binary_search(arr, target):
left, right = 0, len(arr)-1
while left <= right:
mid = (left+right)//2
if arr[mid] == target: return mid
elif arr[mid] < target: left = mid+1
else: right = mid-1
return -1 # O(log n)
O(n) – لائنار وقت –
لائن ٹائم Alphabeths ent on utpt. Examp: بے ترتیب فہرست میں سب سے زیادہ قدر تلاش کرنا۔ آپکو ہر ایک بار جانچنا چاہیے۔
def find_max(arr):
max_val = arr[0]
for i in arr[1:]:
if i > max_val: max_val = i
return max_val # O(n)
O(n log n) – لاگو- لائن وقت –
یہ پیچیدہ طریقے سے مختلف قسم کے الموتز جیسے کہ ملجُل ، ڈھیر اور معیاری لائبریریز کو مختلف زبانوں میں تقسیم کرنے سے پیدا ہوتا ہے ۔
def mergesort(arr):
if len(arr) <= 1: return arr
mid = len(arr)//2
left = mergesort(arr[:mid])
right = mergesort(arr[mid:])
return merge(left, right) # O(n log n)
O(n2) – چودہویں صدی –
چارے گھڑیاں جب آپ نے ان پٹ پر سوراخ کیے ہوں Blub] : Bluble، جہاں بیرونی حصے کا اخراج n اوقات اور اندرونی گردش کرتا ہے، اس کے نتیجے میں n(n-1)/2 ⁇ N2 موازنہ کیا جاتا ہے۔
def bubble_sort(arr):
for i in range(len(arr)):
for j in range(len(arr)-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j] # O(n²)
O(2 ^ ا ب پ ت ٹ ث ج چ ح خ د ڈ ذ ت ٹ ث ج چ ح خ د ڈ ذ ر ڈ ذ ر ڈ ذ ر ڈ ذ ر ڈ ذ ر ڈ ذ ر ڈ ذ ر ڈ ذ ڈ ذ ڈ ڈ ڈ ذ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ف ف ف ف ف ف ف ف ف ف ف ف ج ح خ ص ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ڈ ف ف ف ف ف ۔
ایک دوسرے مرحلے میں پیچیدگی اس وقت آتی ہے جب ہر مرحلے میں امکانات کی تعداد دو گنا ہو جاتی ہے [1] [FLT] بغیر وفاقی شماریات کے دوبارہ دریافت ہونے والی دریافت۔ دوبارہ حاصل ہونے والا درخت زیادہ ترقی کرتا ہے جس سے یہ رسائی زیادہ تر اضافہ ہو جاتا ہے۔
def fib(n):
if n <= 1: return n
return fib(n-1) + fib(n-2) # O(2^n)
ایک الجبرا کی پیچیدہیت کو کیسے درست کِیا جا سکتا ہے
ماسٹرنگ بڑے-و تجزیہ کے لیے سسٹم طریقہ کار درکار ہے. ان اقدامات پر عمل کریں جب آپ کسی انٹرویو میں ایک الموت سے ملاقات کرتے ہیں:
- [Iden نے داخلی حجم [[1]] – عام طور پر [n] یا کئی اندراج کے لیے الگ الگ ترمیم (مثلاً، [FLT]] [FLT] اور [LT5:T] [LT]] [TLT]] [T7]]۔
- غالب آپریشن – وہ عمل جو زیادہ تر دوڑنے میں معاونت دیتا ہے (مثلاً تلاش میں، ترتیب وار رسائی میں تشبیہات)۔
- رقبہ کتنے بار یہ آپریشن کے طور پر کے طور پر کیا جاتا ہے۔
- Drop مسلسل عناصر اور ذیلی حدود – صرف سب سے تیز رفتار اصطلاح کو برقرار رکھنا. مثال کے طور پر 3n2 + 5n + 1 = او(n2)۔
- بد ترین کیس - بغیر کسی اور کے، انفلیشن کا تصور کریں جو سب سے زیادہ آپریشن کا سبب بنتا ہے۔
فضاء کی پیچیدگی کے لیے اسی منطق کا استعمال کریں تاکہ یاد رہے ۔
عام پُراسرار اور مسکُننس
بہترین ، اوسط اور مفید کیس
بڑے پیمانے پر استعمال کیا جاتا ہے بند کرنے کے لیے. لیکن آپ کو اوسط درجے کی پیچیدگی (مثلاً، تیز رفتار اوسط O(n log n) پر بات کرنے کے لیے تیار ہونا چاہیے مگر بدترین-cie O). انٹرویو لینے والے طلبہ جو حقیقی دنیا کی کارکردگی کو الگ اور وضاحت کر سکتے ہیں۔
مخالفین کی مخالفت
جبکہ بڑے پیمانے پر مسلسل استعمال کرتے رہتے ہیں، ایک O(n) Alphal with a بڑے مستقل طور پر ایک O(n2) کے ساتھ ایک . انٹرویو میں آپ کو مسلسل سمجھ میں آتا ہے لیکن اس پر توجہ مرکوز کرتے ہیں۔
زمین کو دوبارہ تعمیر کرنے کیلئے
اکثر اوقات پیچیدگیوں کا مرکزی مرکز ہوتا ہے لیکن فضاء میں پیچیدگی کا شکار ہونے والے لوگوں سے براہِراست سوال کرتے ہیں : ” فضا میں پیچیدگی کیا ہے ؟
All Loops Air O(n) کی جمع ہے۔
دو گنبد ہمیشہ O(n2) کا مطلب نہیں رکھتے. اگر اندرونی حصے میں مسلسل کئی بار چلتا ہے (مثلاً یہ ایک مقررہ حروف کے سائز پر مشتمل ہے) تو مجموعی طور پر O(n)، بند کرنے کا مطلب ہے
انٹرویو کے دن کیلئے عملی مشورت
- شروع شروع میں ایک بتدریج حل سے اور اس کی پیچیدگیوں کو نوٹ کریں. پھر اس بات پر غور کریں کہ کس طرح ہر تبدیلی بڑے-O پر اثر انداز ہوتی ہے۔
- بڑے پیمانے پر نوٹ استعمال کریں ایک رابطہی آلے کے طور پر. مثال کے طور پر: "میرا موجودہ حل O(n2) ہے کہ تمام جوڑوں پر مشتمل ہے. ہم اسے او(n لا ×) میں کم کر کے او(n) کو پہلے، یا او(n) میں استعمال کر کے او ایل ایل ایل اے کے لیے مختص کر سکتے ہیں۔
- جب آپ اپنے کوڈ کا جائزہ لینے کو کہا جاتا ہے تو اِس کے ساتھ ساتھ چلتے وقت اِس پر چلپھر کر اِس بات کی وضاحت کریں کہ آپ کس نمبر پر ہیں ۔
- عام خاندانی درختوں سے آرامدہ رہنا : sun sound vous O(n) ، ایسے ردّ عمل جو ظاہری طور پر ظاہری (log n ) یا O(n log n) میں پھوٹتا ہے ، دوبارہ ایسے ردّ عمل جو بہت زیادہ شاخوں میں گہرے ہوتے ہیں ۔
- یہ جان لو کہ بڑے این او صرف ایک میٹرک ہے.
دلی سمجھنے کیلئے بیرونی وسائل
اپنے علم کو پختہ کرنے کے لیے ان حوالوں کا جائزہ لیں:
- ویکیپیڈیا:G Big O Nonation – ایک جامع ریاضیاتی نظریہ (Cligiology)۔
- Khan Academy: Algorithms کورس – International Schools on Induction search search. اخذ شدہ بتاریخ 22 جون 2013. "مریخ پر واقع ہے۔
- Big-Oucres Sheet – جلد کا حوالہ عام ڈیٹا کی ترکیبوں اور الجبرا کے لیے دیا گیا۔
کُنَّا
سمجھائے گا کہ Big-O notation کامیاب کوڈ انٹرویو کا ایک ذیلی خاکہ ہے. یہ آپ کو الموت کی کارکردگی کے بارے میں استدلال کرنے، رابطہ کاری کے دوران معلوماتی عمل کے بارے میں واضح طور پر قابل بناتا ہے.