الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

البحث عت قيمة مكررة في جدول مرتب وغير مرتب

مغلق
بدأه ru_moh في 6 أكتوبر 2005 · 5 رد · 620 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

:s عندي سؤال ارجو من خبراء البرمجة بلغة السي مساعدتي فيه :

وهو كالتالي:

في جدول مرتب وجدول غير مرتب .اريد ان اعرف ادا كان هناك قمية متكررة ويشترط بالتكرار ان يكون مع الخانة التي تليها .ثم يقوم البرنامج بطباعة القيمة المتكررة ؟

اتمنى عدم اهمال سؤالي والاجابة عليه باسرع وقت ..وشكرا

#2

حسناً سأقول أنك تقصد بكلمة جـدول ... مصفوفة..

لنفرض أن لديك مصفوفة من النوع char يبلغ عـدد حروفها 15 حرفاً ، فإن الحل هـو أن تقوم بصنع حلقة من النوع for تبدأ هذه المرة من الواحد وليس من الصفر ... أنظر إلى هذا الكود وأعذرني إن وجد فيه أي خطأ لأني أحادثك من مقهى وليس من جهازي الشخصي:

#include <stdio.h>

int main()
{
char m[15]="Ahmed Emad....";
int i=1;

for (i=1;i<15;i++)
{
if  (m== m[i-1])
printf("%c", m );
}
return 0;
}

مع ملاحظـة أن هذا الكود أو المثال يأخذ في عين الاعتبار شرط التكرار الذي وضعته أنت في سؤالك

#3

شكرا لك اخي على هذه المساعدة العاجلة وكم اشكرك لأنك حللت لي هذه المشكلة. اتمنى لك التوفيق

#4

حياك الله أخي العـزيز في أي وقت

#5

اذا كانت المصفوفة مرتبة تستطيع اختصار عملية البحث, و ذلك باستغلال ترتيب المصفوفة لاختصار الوقت.

مثلا الجدول فيه 1000 رقم و كلها مرتبة .. و انت تريد ان تبحث عن رقم 67 مثلا .. و لقنل ان الترتيب تصاعدي.

انظر الى العنصر "الوسطاني" اللذي يقف في منتصف المصفوفة, يعني العنصر رقم 500, و انظر هل هو اقل من 67 ام اكثر منها؟ لو كان اكثر منها .. عندها ستعرف او الرقم 67 لا بد ان يكون في المنتصف السفلي من الجدول (لان الجدول مرتب بشكل تصاعدي) و الان تستطيع اختصار عملية البحث فقط الى العناصر من 0 ... 500 و تقوم بعمل نفس الشي .. تنظر الى العنصر الوسطاني و تكمل على هذه الوتيرة حتى تجد الرقم.

هذه الطريقة تسمى binary search و هي اسرع بكثير من البحث العادي حيث زمن الـ binary search هو (O(logn بينما البحث العادي زمنه (O(n .. و لكن طريقة الـ binary search لا تعمل الا اذا كانت المصفوفة مرتبة مسبقا.

#6

شكرا اخي hasan_aljudy على هذه المعلومة القيمة إن شاء الله استفيد منها في مرات قادمة

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…