فرز الفقاعة: هو ترتيب العناصر في صفيف من أجل كبير إلى صغير أو صغير إلى كبير.
VAR Array = [9،8،7،6،5،4،3،2،1] ؛
مقارنة الجولة الأولى: 8،7،6،5،4،3،2،1،9 تم تبديلها 8 مرات i = 0 j = array.length-1-i
مقارنة الجولة الثانية: 7،6،5،4،3،2،1،8،9 تم تبديلها 7 مرات i = 1 j = array.length-1-i
مقارنة الجولة الثالثة: 6،5،4،3،2،1،7،8،9 مبادلة 6 مرات i = 2 j = array.length-1-i
مقارنة الجولة الرابعة: 5،4،3،2،1،6،7،9،9 تم تبديلها 5 مرات i = 3 j = array.length-1-i
مقارنة الجولة الخامسة: 4،3،2،1،5،6،7،8،9 تم تبديلها 4 مرات i = 4 j = array.length-1-i
مقارنة الجولة السادسة: 3،2،1،4،5،6،7،8،9 تم تبديلها 3 مرات i = 5 j = array.length-1-i
المقارنة بين الجولة السابعة: 2،1،3،4،5،6،7،8،9 تم تبديل 2 مرات i = 6 j = array.length-1-i
مقارنة الجولة الثامنة: 1،2،3،4،5،6،7،9،9 تم تبديلها مرة واحدة i = 7 j = array.length-1-i
تنفيذ الكود:
var temp ؛ var array = [9،8،7،6،5،4،3،2،1] اثنين من المتغيرات temp = صفيف [j] ؛ صفيف [j] = صفيف [j+1] ؛ صفيف [j+1] = temp ؛ }}} console.log (صفيف) ؛
تحسين الكود:
var temp ، bool ، m = 0 ؛ var array = [9،8،7،6،5،4،3،2،1] ؛ for (var i = 0 ؛ i <array.length-1 ؛ i ++) {// switch bool in the ext inplic in the exple and incling bool = true ؛ لـ (var j = 0 ؛ j <array.length-1-i ؛ j ++) {if (Array [j]> array [j+1]) {// swap اثنين من المتغيرات temp = array [j] ؛ صفيف [j] = صفيف [j+1] ؛ صفيف [j+1] = temp ؛ bool = false ؛ // تبديل التبديل}} // إذا لم يتم تنفيذ الحلقة الداخلية (يتم إيقاف تشغيل المفتاح ، قم بتنفيذ البيان التالي) ؛ if (bool) {break ؛ } m ++ ؛} console.log (Array+"، قارن"+m+"wheel") ؛ملاحظة: أفضل حالة لجولات المقارنة هي 0 جولات ، وأسوأ الحالات هي 8 جولات.
دعونا نلقي نظرة على خوارزمية فرز الفقاعة
// فرز Bubble JavaScript ، وإضافته مباشرة إلى النموذج الأولي للنوع الأساسي // هنا نستخدم رمز جوهر لغة JavaScript لإضافة طرق إلى النموذج الأولي للكون الأساسي. // لأن الصفيف والسلسلة نفسها عبارة عن مُنشئين ، فإنهم ينشئون كائنات من خلال خط المنشئ الجديد ، so array.prototype. if (! this.prototype [name]) {// من الأفضل الحكم على ما إذا كانت هناك هذه الطريقة في النموذج الأولي أولاً. إذا this.prototype [name] = func ؛ } إرجاع هذا ؛ } ؛ Array.method ('bubble' ، function () {// خوارزمية الفقاعة تحلق طول الصفيف في المجموع ، أي ، يتم وضع الأوقات الأصغر ، وأصغرها في آخر var len = this.length ؛ var i = 0 ، j = 0 ، tmp = 0 ؛ console.log () إذا كان هذا [j+1] هذا [j+1] تنبيه ([21،32،1،31،22،45،68،37 ،]. فقاعة ()) ؛نظرت إلى رمز مهندس أمامي آخر ، Xifeng Shouma. في الطبقة الأولى من الحلقة ، يكون علامة التبادل خاطئة. عندما يكون هناك تبادل ، يصبح صحيحًا. يضاف الحكم بعد الطبقة الثانية من نهايات الحلقة. إذا كان الأمر كاذبًا ، أي أنه لا يوجد تبادل من الأمام إلى الخلف ، ويثبت أن ترتيب الحجم صحيح ، فيمكنك كسر القفز من الخارجي للحلقة.
// صفائف تحتاج إلى فرز قائمة var = صفيف (23 ، 45 ، 18 ، 37 ، 92 ، 13 ، 24) ؛ لـ (var i = n - 1 ؛ i> time ؛ i-) {if (list [i] <list [i - 1]) {Exchange = true ؛ TMP = قائمة [i - 1] ؛ قائمة [i] ؛ قائمة [i] = tmp ؛ }} // إذا لم يكن هناك تبادل في هذا الترتيب ، يتم إنهاء الخوارزمية في وقت مبكر إذا (! التبادل) {break ؛ }} ALERT ('Array Forted IS:' + list + '، تم ترتيب n في المجموع " + time +' walk ') ؛لقد جمعت خوارزمية مستخدمي الإنترنت من قبل ، وهو أمر جيد جدًا. يرجى إلقاء نظرة عليه.
دالة bubblesort (صفيف) {var length = array.length ؛ var temp ؛ var issort = false ؛ لـ (var i = 1 ؛ i <length ؛ i ++) {issort = false ؛ لـ (var j = 0 ؛ j <length - i ؛ j ++) {if (array [j]> array [j+1]) {// swap temp = array [j] ؛ صفيف [j] = صفيف [j+1] ؛ صفيف [j+1] = temp ؛ issort = صحيح ؛ }} if (! issort) break ؛ // في حالة حدوث أي تبادل ، قم بالخروج من الصفيف}} var = [10 ، -3،5،34 ، -34،5،0،9] ؛ Bubblesort (صفيف) ؛ لـ (var i = 0 ؛ i <array.length ؛ i ++) {document.write (Array [i]+"") ؛ }حسنًا ، دعنا نلخصها لك اليوم. آمل أن يكون من المفيد للأصدقاء أن يتعلموا فرز فقاعة JavaScript.