يحكي مثال هذه المقالة فرز ملخص خوارزمية فرز Java. شاركه للجميع للرجوع إليه. التحليل المحدد هو كما يلي:
في عام 1991 ، قام روبرت دبليو فلايد ، أستاذ في قسم علوم الكمبيوتر في قسم علوم الكمبيوتر بجامعة ستانفورد ، وجي ويليامز في عام 1964 ، اخترع بشكل مشترك عن نوع الكومة الشهير (نوع الكومة) يقدم هذا المقال بشكل أساسي جافا إلى فرز الكومة.
يشير Heapsort إلى خوارزمية الفرز التي صممها بنية بيانات الوبر (كومة) ، والتي يمكن أن تستخدم خصائص الصفيف لتحديد موقع عنصر الفهارس المحدد بسرعة. ترتيب التراص هو طريقة فرز غير مستقر.
يستخدم ترتيب التراص خصائص الحد الأقصى (أو الحد الأدنى) للكلمات الرئيسية لسجل كومة كبير (أو كومة جذر صغيرة) ، مما يجعل سجل الكلمة الرئيسية (أو الحد الأدنى) في المنطقة غير المنضبطة الحالية بسيطة.
(1) الأفكار الأساسية مرتبة مع كومة كبيرة
① أولاً بناء الملف الأولي r [1..n] في تبادل جذر كبير. إرضاء R [1 .. N-1] .Keys≤r [n] .Key
③ نظرًا لأن الجذر الجديد R [1] قد ينتهك طبيعة الكومة بعد التبادل ، فيجب ضبط المنطقة الحالية غير الترتيب R [1 .. N-1] في كومة. ثم يتم تبادل الكلمات الرئيسية في الكلمات الرئيسية في R [1..n-1] مرة أخرى مع السجل الأخير R [N-1] في الفاصل الزمني ، الذي حصل على منطقة غير منظمة جديدة R [1 ..... N-2 ] ومنطقة منظمة r [n-1..n] ، وما زالت ترضي العلاقة r [1 ..- .. n-2] .keys≤r [n-1..n]. [1..n-2] اضبط الكومة.
Nympho
حتى يكون هناك عنصر واحد فقط في المنطقة غير المنضبطة.
(2) التشغيل الأساسي لخوارزمية الفرز لجذور كبيرة:
① تهيئة العملية: بناء r [1..n] في الكومة الأولية ؛
② التشغيل الأساسي من كل نوع: تبادل السجل الأخير من سجل الوبر R [1] في المنطقة غير المنضبطة الحالية ، ثم ضبط المنطقة الجديدة غير المنضبطة في كومة (المعروفة أيضًا باسم إعادة البناء).
يلاحظ:
① فقط قم بفرز N-1 وحدد كلمة رئيسية أكبر N-1 لزيادة الملف بالترتيب.
② يشبه الفرز بجذور صغيرة جذور كبيرة ، لكن نتائجها تتناقص ومنظمة. يكون ترتيب التراص والاختيار المباشر للفرز معاكسًا: في أي لحظة ، تكون المنطقة غير المنضبطة دائمًا قبل المنطقة المنظمة ، وتتوسع المنطقة المنظمة تدريجياً من الجزء الخلفي من المتجه الأصلي إلى المتجه بأكمله.
تنفيذ الكود:
اختبار الفئة العامة {public static int [] heap = {10 ، 32 ، 1 ، 9 ، 5 ، 7 ، 0 ، 4 ، 3} ؛ {int i ؛ +) System.Printf ("٪ 3S" (i = 1 ؛ i <index -1 ؛ i ++) system.out.printf ("٪ 3s" ، كومة) ؛ Void Creap (int index) {int i ، j ؛ submp = head [root] ؛ [j]) الانتهاء = 1 ؛ ؛ ؛ كومة [1] = testheap (1 ، i) ؛ "٪ 3S" ، كومة [j]) ؛
يمكن اعتبار الكومة شجرة ، ويمكن تعريف ارتفاع العقدة في الارتفاع على أنه عدد أطول مسار إسقاط بسيط من العقدة إلى العقدة. جذر. سنرى أن بعض العمليات الأساسية على بنية الكومة تتناسب في الغالب مع ارتفاع الشجرة ، وهو O (LGN). من خلال قراءة هذا المقال ، آمل أن أساعدك.
من المأمول أن يكون هذا المقال مفيدًا لتصميم برنامج Java للجميع.