Sunday 28 January 2018

متوسط geeksforgeeks تتحرك ،


مثل دمج الترتيب. كويكسورت هو تقسيم و قهر خوارزمية. فإنه يختار عنصرا كمحور وتقسيم صفيف معين حول المحور المحوري. هناك العديد من الإصدارات المختلفة من كيكسورت التي اختيار محور بطرق مختلفة. حدد العنصر الأول دائما كمحور. اختيار العنصر الأخير دائما كمحور (يتم تنفيذه أدناه) اختيار عنصر عشوائي كمحور. اختر الوسيط كمحور. العملية الرئيسية في كويكسورت هو التقسيم (). الهدف من الأقسام هو، نظرا إلى صفيف والعنصر x من المصفوفة كمحور، وضع x في الموضع الصحيح في صفيف فرز ووضع كل العناصر الصغيرة (أصغر من x) قبل x، ووضع جميع العناصر أكبر (أكبر من x) بعد س. كل هذا يجب أن يتم في وقت خطي. رمز الزائفة ل كيكسورت العودية وظيفة: خوارزمية التقسيم يمكن أن يكون هناك العديد من الطرق للقيام التقسيم، بعد الرمز الزائف تتبنى الطريقة الواردة في كتاب كلرس. المنطق هو بسيط، ونحن نبدأ من أقصى اليسار عنصر وتتبع مؤشر أصغر (أو يساوي) العناصر كما ط. بينما عبور، إذا وجدنا عنصر أصغر، ونحن مبادلة العنصر الحالي مع أري. وإلا فإننا نتجاهل العنصر الحالي. الرمز الزائف للتقسيم () توضيح التقسيم (): التنفيذ: فيما يلي تطبيقات C و جافا و بيثون من كيكسورت. تحليل كيكسورت الوقت الذي اتخذته كويكسورت بشكل عام يمكن أن تكون مكتوبة على النحو التالي. المصطلحان الأولان هو لمكالمتين متكررتين، والفترة الأخيرة هي لعملية التقسيم. k هو عدد العناصر التي تكون أصغر من المحورية. الوقت الذي يستغرقه كيكسورت يعتمد على مجموعة المدخلات واستراتيجية التقسيم. وفيما يلي ثلاث حالات. أسوأ حالة: أسوأ حالة يحدث عندما عملية التقسيم دائما يختار أكبر أو أصغر عنصر كمحور. إذا نظرنا إلى إستراتيجية التقسيم أعلاه حيث يتم اختيار العنصر الأخير دائما كمحور، فإن أسوأ حالة ستحدث عندما يتم تصنيف الصفيف بالفعل بترتيب متزايد أو متناقص. وفيما يلي تكرار لأسوأ الحالات. أفضل حالة: يحدث أفضل حالة عندما عملية التقسيم دائما يختار العنصر الأوسط كمحور. وفيما يلي تكرار لأفضل حالة. متوسط ​​الحالة: للقيام متوسط ​​تحليل الحالة، ونحن بحاجة إلى النظر في كل التقليب ممكن من مجموعة وحساب الوقت الذي يستغرقه كل التقليب الذي لا تبدو سهلة. يمكننا الحصول على فكرة عن حالة متوسطة من خلال النظر في القضية عندما يضع القسم O (n9) عناصر في مجموعة واحدة و O (9n10) عناصر في مجموعة أخرى. وفيما يلي تكرار لهذه الحالة. حل تكرار أعلاه هو أيضا O (نلوغن) على الرغم من أن أسوأ حالة تعقيد الوقت من كيكسورت هو O (ن 2) الذي هو أكثر من العديد من خوارزميات الفرز الأخرى مثل دمج فرز و كومة الترتيب. كويكسورت هو أسرع في الممارسة، لأن الحلقة الداخلية يمكن تنفيذها بكفاءة على معظم الأبنية، وفي معظم البيانات في العالم الحقيقي. يمكن تنفيذ كويكسورت بطرق مختلفة عن طريق تغيير اختيار المحور، بحيث أسوأ حالة نادرا ما يحدث لنوع معين من البيانات. ومع ذلك، يعتبر دمج نوع عموما أفضل عندما تكون البيانات ضخمة وتخزينها في التخزين الخارجية. ما هو كيكسورت 3-واي في خوارزمية كيكسورت بسيطة، نختار عنصرا كمحور، تقسيم صفيف حول المحور وتتكاثر على الرهائن على اليسار واليمين من المحور. النظر في مصفوفة التي لديها العديد من العناصر الزائدة عن الحاجة. فمثلا، . إذا تم اختيار 4 كمحور في كويك سورت بسيط، نقوم بإصلاح واحد فقط 4 وبشكل متكرر معالجة الحالات المتبقية. في 3 الطريق كويكسورت، صفيف ارل .. ر ينقسم في 3 أجزاء: أ) ارل .. أنا عناصر أقل من المحور. ب) عناصر ari1..j-1 تساوي المحور. ج) عناصر arj..r أكبر من المحور. انظر هذا للتنفيذ. يمكننا تنفيذ كويكسورت إينتيراتيفلي نعم، يرجى الرجوع إيتراتيف سريعة الفرز. لماذا يفضل فرز سريع على ميرجيسورت لفرز صفائف سريعة فرز في شكله العام هو نوع في مكان (أي أنها لا تتطلب أي تخزين إضافية) في حين يتطلب نوع دمج O (N) تخزين إضافية، N يدل على حجم صفيف التي قد تكون غال قليلا. تخصيص وإلغاء تخصيص مساحة إضافية تستخدم لدمج نوع يزيد من وقت تشغيل الخوارزمية. مقارنة متوسط ​​التعقيد نجد أن كلا النوعين من أنواع يكون O (نلوغن) متوسط ​​التعقيد ولكن الثوابت تختلف. للمصفوفات، دمج نوع يفقد بسبب استخدام اضافية O (N) مساحة التخزين. معظم التطبيقات العملية من كويك سورت استخدام النسخة العشوائية. وقد توقعت النسخة العشوائية تعقيد الوقت من O (نلوغن). أسوأ حالة ممكنة في النسخة العشوائية أيضا، ولكن أسوأ حالة لا يحدث لنمط معين (مثل صفيف فرز) وعشوائية سريع الفرز يعمل بشكل جيد في الممارسة العملية. الترتيب السريع هو أيضا خوارزمية الفرز ذاكرة التخزين المؤقت ودية كما أن لديها مكانة جيدة مرجعية عند استخدامها للمصفوفات. الفرز السريع هو أيضا الذيل عودية، وبالتالي يتم إجراء تحسينات دعوة ذيل. لماذا يفضل ميرجيسورت على كيكسورت للقوائم المرتبطة في حالة القوائم المرتبطة الحالة يختلف أساسا بسبب الاختلاف في تخصيص الذاكرة من المصفوفات وقوائم مرتبطة. وخلافا للمصفوفات، قد لا تكون عقد القوائم المرتبطة متجاورة في الذاكرة. على عكس مجموعة، في قائمة مرتبطة، يمكننا إدراج العناصر في منتصف في O (1) مساحة إضافية و O (1) الوقت. لذلك دمج عملية دمج نوع يمكن تنفيذها دون مساحة إضافية للقوائم المرتبطة. في المصفوفات، يمكننا أن نفعل الوصول العشوائي كعناصر مستمرة في الذاكرة. دعونا نقول لدينا مجموعة عدد صحيح (4 بايت) A والسماح لعنوان A0 يكون x ثم للوصول إلى منظمة العفو الدولية، يمكننا الوصول مباشرة إلى الذاكرة في (س i4). على عكس المصفوفات، لا يمكننا أن نفعل الوصول العشوائي في قائمة مرتبطة. يتطلب الفرز السريع الكثير من هذا النوع من الوصول. في قائمة مرتبطة للوصول إلى مؤشر إيث، لدينا للسفر كل عقدة من الرأس إلى إيث عقدة ونحن لا تملك كتلة مستمرة من الذاكرة. لذلك، الزيادات العامة للفرز السريع. دمج نوع الوصول إلى البيانات بالتسلسل والحاجة إلى الوصول العشوائي هو منخفض. قائمة انتقاء مجموعة 1 (مقدمة) يمكننا البحث في قائمة مرتبة فرزها في أفضل من O (n) الوقت أسوأ حالة البحث عن قائمة مرتبة مرتبط O ( n) كما يمكننا فقط اجتياز خطيا القائمة ولا يمكن تخطي العقد أثناء البحث. لشجرة بحث ثنائي متوازن، ونحن تخطي ما يقرب من نصف العقد بعد مقارنة واحدة مع الجذر. لصفيف فرزها، لدينا وصول عشوائي ويمكننا تطبيق البحث الثنائي على المصفوفات. هل يمكننا زيادة قوائم مرتبة مرتبة لجعل البحث بشكل أسرع الجواب هو تخطي القائمة. الفكرة بسيطة، ونحن خلق طبقات متعددة حتى نتمكن من تخطي بعض العقد. انظر قائمة الأمثلة التالية مع 16 العقد وطبقتين. الطبقة العليا تعمل كما 8220express lane8221 الذي يربط فقط المحطات الخارجية الرئيسية، والطبقة السفلى يعمل 8220normal lane8221 الذي يربط كل محطة. لنفترض أننا نريد البحث عن 50، نبدأ من العقدة الأولى من 8220express lane8221 والحفاظ على التحرك على 8220express lane8221 حتى نجد عقدة الذي هو أكبر من 50. مرة واحدة نجد مثل هذه العقدة (30 هو العقدة في المثال التالي) على 8220express lane8221، ونحن ننتقل إلى 8220normal lane8221 باستخدام مؤشر من هذه العقدة، والبحث خطيا عن 50 على 8220normal lane8221. في المثال التالي، نبدأ من 30 على 8220normal lane8221 ومع البحث الخطي، نجد 50. ما هو تعقيد الوقت مع طبقتين أسوأ حالة تعقيد الوقت هو عدد من العقد على 8220express lane8221 بالإضافة إلى عدد من العقد في شريحة (شريحة هو عدد من 8220normal lane8221 العقد بين العقدين 8220express lane8221) من 8220normal lane8221. حتى إذا كان لدينا ن العقد على 8220normal lane8221، راديكن (الجذر التربيعي لل n) العقد على 8220express lane8221 ونحن نقسم بالتساوي 8220normal lane8221، ثم سيكون هناك العقد راديكن في كل شريحة من 8220normal لين 8221. راديكن هو في الواقع تقسيم الأمثل مع طبقتين. مع هذا الترتيب، فإن عدد العقد التي تم اجتيازها للبحث سيكون O (راديكن). لذلك، مع O (راديكن) مساحة إضافية، ونحن قادرون على تقليل تعقيد الوقت ل O (راديكن). هل يمكننا أن نفعل بشكل أفضل يمكن تقليل تعقيد الوقت لقوائم التخطي بإضافة المزيد من الطبقات. في الواقع، فإن تعقيد الوقت من البحث، إدراج وحذف يمكن أن تصبح O (لوغن) في حالة متوسطة. سنقوم قريبا بنشر المزيد من المشاركات على تخطي القوائم. يرجى كتابة تعليقات إذا وجدت أي شيء غير صحيح، أو كنت ترغب في مشاركة المزيد من المعلومات حول الموضوع الذي نوقش أعلاه. كتابة التعليمات البرمجية في التعليق يرجى استخدام code. geeksforgeeks. org. إنشاء رابط ومشاركة الرابط هنا. تحميل التعليقات شير ذيس بوستمديان من صفيفتين مرتبتين السؤال: هناك صفيفان مرتبان A و B من الحجم n لكل منهما. اكتب خوارزمية للعثور على متوسط ​​المصفوفة التي تم الحصول عليها بعد دمج المصفوفتين أعلاه (أي صفيف طول 2n). وينبغي أن يكون التعقيد O (لوغ (n)) ونحن نوصي بشدة أن انقر هنا وممارسة ذلك، قبل الانتقال إلى الحل. الوسيط: في نظرية الاحتمالات والإحصاءات، يوصف الوسيط بأنه الرقم الذي يفصل النصف الأعلى من العينة، أو عدد السكان، أو توزيع الاحتمالات، من النصف الأدنى. يمكن العثور على متوسط ​​قائمة محدودة من الأرقام عن طريق ترتيب جميع الأرقام من أدنى قيمة إلى أعلى قيمة واختيار واحد الأوسط. للحصول على متوسط ​​من مجموعة الإدخال، أولا فرز المصفوفة. نحصل على بعد الفرز. ميديان هو العنصر الأوسط للمصفوفة التي تم فرزها وهي 12. هناك اتفاقيات مختلفة لاتخاذ متوسط ​​مصفوفة مع عدد متساوي من العناصر، يمكن للمرء أن يأخذ متوسط ​​القيمتين المتوسطتين، أو القيمة المتوسطة الأولى، أو القيمة المتوسطة الثانية. دعونا نرى طرق مختلفة للحصول على وسيط صفيفتين مرتبة من حجم ن كل منهما. وبما أن حجم المجموعة التي نبحث عن متوسطها حتى (2n)، فإننا نأخذ متوسط ​​رقمين متوسطين في جميع الحلول أدناه. الطريقة الأولى (عد ببساطة أثناء دمج) استخدام إجراء دمج من دمج نوع. تتبع العد أثناء مقارنة عناصر صفيفتين. إذا أصبح العد n (بالنسبة للعناصر 2n)، وصلنا إلى الوسيط. أخذ متوسط ​​العناصر في الفهارس n-1 و n في المصفوفة المدمجة. انظر التنفيذ أدناه. تعقيد الوقت: O (n) الطريقة 2 (بمقارنة متوسطات صفيفتين) تعمل هذه الطريقة من خلال الحصول أولا على متوسطات صفيفتين مرتبتين ومن ثم مقارنتها. السماح ar1 و ar2 تكون صفائف الإدخال. بالنسبة للمصفوفتين أعلاه m1 15 و M2 17 بالنسبة إلى AR1 و ar2 أعلاه، m1 أصغر من m2. لذلك المتوسط ​​موجود في واحدة من اثنين من الرهائن التالية. دعونا نكرر العملية لأكثر من اثنين من الرهائن الفرعية: m1 أكبر من m2. لذلك تصبح الرهانات الوقت تعقيد: O (لوغن) خوارزمية بارادجم: تقسيم وقهر يرجى كتابة تعليقات إذا وجدت رموز الشفرات أعلاه غير صحيحة، أو العثور على طرق أخرى لحل المشكلة نفسها.

No comments:

Post a Comment