تنفيذ خوارزميات مصفوفة 2A
| English | العربية |
|---|---|
| nested-loop/ˈnestɪd luːp/ | حلقة متداخلة |
| main diagonal/meɪn daɪˈæɡənl/ | القطر الرئيسي |
| indexed/ˈɪndekst/ | مُؤشَّر |
خوارزميات الشبكة
- خوارزميات ثنائية الأبعاد 2 تجمع بين أنماط المصفوفات والتجول بـ حلقات متداخلة.
- المجموع / العد / أقصى قيمة عبر الشبكة كاملة: اجمع داخل الحلقة الداخلية.
- بحث في شبكة: أرجع الـ
[row][col]عند العثور عليه (أو إشارة "لم يتم العثور"). - نفس منطق المجمع/الأقصى، الآن عبر
rows × columnsخلايا.
مجموع الصفوف والأعمدة
- صف واحد: ثبت
r، عدّcعبر الأعمدة، واجمعg[r][c]. - عمود واحد: ثبت
c، عدّrعبر الصفوف، واجمعg[r][c]. - اختيار أي فهرس تثبت وأيهما تعدّ هو القرار الرئيسي.
- مجموع الصف يمسح أفقياً؛ مجموع العمود يمسح رأسياً.
القطر
- القطر الرئيسي للشبكة المربعة هو الخلايا حيث الصف == العمود.
- عدّ فهرس واحد:
for (int i = 0; i < g.length; i++) { ... g[i][i] ... } g[0][0], g[1][1], g[2][2], …— حلقة واحدة، كلا الفهرسين متساويان.- مفيد للشبكات المربعة (فحوصات الهوية، قطرات اللوح).
تعديل الخلايا
- لتغيير خلية، استخدم الحلقات المتداخلة ذات الفهارس وأضف
g[r][c] = .... - نسخة for-eesh لا يمكنها الكتابة إلى الشبكة.
- انتبه للحددين — الطول الخاطئ يقرأ أو يكتب الخلية الخطأ.
- تتبع
[r][c]بعناية، خاصة عندما تختلف الصفوف والأعمدة في العدد.
قرر أي فهرس تثبت وأيهما تعدّ — هذا هو الفرق بين مجموع الصف ومجموع العمود. مجموع الصف يثبت r ويعدّ c (g[r][c] أفقياً)؛ مجموع العمود يثبت c ويعدّ r (g[r][c] رأسياً). وتعديل الخلايا يحتاج الحلقات المتداخلة ذات الفهارس (g[r][c] = …)؛ نموذج for-eesh يقرأ فقط.
جمع عمود 0 من الشبكة:
int sum = 0;for (int r = 0; r < g.length; r++) { sum += g[r][0]; }- يثبت العمود
0، يعدّ لأسفل عبر الصفوف — وهو مجموع عمود.
تطبق خوارزميات ثنائية الأبعاد 2 أنماط المصفوفات فوق حلقات متداخلة: جمع/عد/حد أقصى/بحث للشبكة كاملة، جمع صف (ثابت r، حلق c)، جمع عمود (ثابت c، حلق r)، أو القطر (g[i][i]). تعديل الخلايا يتطلب الحلقات المفهرسة (g[r][c] = …)؛ انتبه للحدود (g.length صفوف، g[0].length أعمدة).
جمع العمود 0
g[0][0]=1, g[1][0]=4, g[2][0]=7: المجموع المتدرج 1, 5, 12.
لجمع صف واحد r ، تقوم بـ...
مجموع الصف يثبت الصف، ويكرر الأعمدة.
لجمع عمود واحد c ، تقوم بـ...
مجموع العمود يثبت العمود، ويكرر الصفوف.
القطر الرئيسي لشبكة مربعة هو الخلايا التي...
g[0][0], g[1][1], g[2][2] — مؤشر واحد، وكلاهما متساويان.
يمكن لصيغة for-each تعديل (كتابة في) خلايا الشبكة.
for-each للقراءة فقط؛ استخدم حلقات مؤشرات (g[r][c] = ...) للكتابة.
العمود 0 من {{1,2},{4,5},{7,8}} هو 1، 4، 7. ما هو مجموعها؟
1 + 4 + 7 = 12.
رتب الخطوات لجمع العمود c.
تهيئة، تكرار الصفوف، تجميع، إرجاع.