منصوبے کے بارے میں

یہ ریپوزٹری جاوا میں لکھے گئے الگورتھم اور ڈیٹا ڈھانچے کے نفاذ کا ایک منتخب مجموعہ ہے، جو عام کمپیوٹیشنل تکنیکوں کے درست اور خوبصورت نفاذ کو ظاہر کرنے کے لیے ڈیزائن کیا گیا ہے۔ یہ ڈویلپرز اور طلبہ کے لیے ایک حوالہ جاتی لائبریری اور تعلیمی وسیلہ دونوں کا کام کرتی ہے۔ یہ پروجیکٹ بڑے حصوں میں منظم موضوعات کی ایک وسیع رینج کا احاطہ کرتا ہے: **ڈیٹا ڈھانچے**: اس میں متوازن درخت (AVL، Red-Black)، بائنری سرچ درخت، سپلے درخت، ڈائنامک اریز، فینوک درخت، فبونیکی ہیپس، ہیش ٹیبلز (متعدد تصادم حل کرنے کی حکمت عملیوں کے ساتھ)، لنکڈ لسٹیں، پرائمری کیوز (بائنری ہیپ، D-ہیپ، انڈیکسڈ اقسام)، قطاریں، سیگمنٹ درخت، سپارس ٹیبلز، اسٹیکس، سافکس اریز، ٹرائیز، اور یونین-فائنڈ ڈھانچے شامل ہیں۔ **ڈائنامک پروگرامنگ**: اس میں کلاسیکی مسائل جیسے کوائن چینج، ایڈٹ ڈسٹنس، نیپ سیک کی مختلف اقسام، زیادہ سے زیادہ مسلسل سب اری، طویل ترین مشترکہ/بڑھتی ہوئی/پیلینڈروم سب سیکوئنسز، ٹریولنگ سیلز مین مسئلہ، اور کم سے کم وزن والی مکمل میچنگ شامل ہیں۔ اس کے علاوہ ٹائلنگ کے مسائل اور ایڈہاک چیلنجز جیسی عملی مثالیں بھی شامل ہیں۔ **جیومیٹری**: اس میں 2D اور 3D ویکٹر آپریشنز، دائرے اور لائن کے انٹرسیکشن الگورتھم، پوائنٹس کے قریب ترین جوڑے، محدب ہل کی تعمیر (Graham Scan اور Monotone Chain)، کثیرالاضلاع کے رقبے اور احاطہ کی جانچ، مثلث کے رقبے کے حسابات، اور جغرافیائی فاصلے کے حسابات شامل ہیں۔ **گراف تھیوری**: یہ ایک بڑا حصہ ہے جس میں درختوں کے الگورتھم (روٹنگ، آئسومورفزم، سینٹر، ڈایامیٹر، LCA)، نیٹ ورک فلو الگورتھم (Ford-Fulkerson، Edmonds-Karp، Dinic's، کیپیسٹی اسکیلنگ، من-کاسٹ میکس-فلو)، اور بنیادی الگورتھم جیسے BFS، DFS، Dijkstra's، Bellman-Ford، Floyd-Warshall، ٹوپولوجیکل سارٹ، کم سے کم پھیلانے والے درخت (Kruskal's، Prim's، Boruvka's)، مضبوطی سے جڑے ہوئے اجزاء (Tarjan's، Kosaraju's)، آرٹیکولیشن پوائنٹس، برجز، اور Eulerian پاتھ شامل ہیں۔ **لکیری الجبرا**: اس میں Gaussian elimination، میٹرکس آپریشنز (ڈیٹرمیننٹ، الٹا، ضرب، پاور)، Freivald کا الگورتھم، اور لکیری ریکرنس حل کرنے والے شامل ہیں۔ **ریاضی**: اس میں نمبر تھیوری کے موضوعات شامل ہیں جن میں چینی بقیہ نظریہ، پرائم سیوز، Euler کا totient فنکشن، توسیعی Euclidean الگورتھم، GCD، اور فاسٹ فوئیر ٹرانسفارم شامل ہیں۔ یہ پروجیکٹ اپنے بلڈ سسٹم کے طور پر Bazel استعمال کرتا ہے (جس کے لیے JDK 8+ درکار ہے)، جس میں انفرادی الگورتھم یا مکمل ٹیسٹ سوٹ چلانے کے لیے واضح ہدایات موجود ہیں۔ بہت سے نفاذات میں William Fiset YouTube چینل پر متعلقہ ویڈیو وضاحتیں شامل ہیں، جو بصری سیکھنے والوں کے لیے اسے قابل رسائی بناتی ہیں۔ ہر الگورتھم کے اندراج میں عام طور پر اس کی وقتی پیچیدگی شامل ہوتی ہے، اور کوڈ کو موضوع کے لحاظ سے مستقل نام دینے کے کنونشنز کے ساتھ ترتیب دیا گیا ہے۔ یہ ریپوزٹری MIT لائسنس کے تحت ہے اور اس میں Bazel ٹیسٹ اور README URL چیکنگ کے لیے CI/CD بیجز شامل ہیں۔