欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          一分鐘徹底理解JavaScript冒泡排序與選擇排序

          本篇文章我們來了解一下JavaScript中的冒泡排序與選擇排序的相關(guān)知識,起泡法每次比較就要立刻交換,而選擇排序是把未排序最小的數(shù)找出來與它應在的位置上的元素交換。選擇排序交換次數(shù)較少,一定程度上提高了運算效率。希望對大家有幫助。

          一分鐘徹底理解JavaScript冒泡排序與選擇排序

          JavaScript冒泡排序與選擇排序

          冒泡排序

          • 原理:

          比較兩個相鄰的元素,將值大的元素交換到右邊,直到最右邊。注意核心是相鄰。

          • 思路:

          依次比較相鄰的兩個數(shù),將比較小的數(shù)放在前面,比較大的數(shù)放在后面。第一輪下來數(shù)組中最大的數(shù)會排在最后面。

          第二輪:然后數(shù)組再剩余的數(shù)中從第一個數(shù)依次比較相鄰的數(shù),將最大的數(shù)排在最后面。

          重復步驟,直到排序完成。

          注意:到倒數(shù)第二輪完時,最后一輪還剩一個數(shù),肯定是最小的,所以不用排序。即就是只用排序 數(shù)組的長度減一(arr.length-1)輪

          算法可視化:

          一分鐘徹底理解JavaScript冒泡排序與選擇排序

          代碼如下:

           <script>         function ismaopao(arr) {             //控制比較輪數(shù)             for (var i = 0; i < arr.length - 1; i++) {                 //冒泡排序,兩兩交換,從頭開始做比較(大數(shù)下沉)                 for (var j = 0; j < arr.length - 1 - i; j++) {                     //arr.length-1-i,因為前面的判斷已經(jīng)找到最大的值,就不需要與找到的大數(shù)做比較了                     if (arr[j] > arr[j + 1]) {                         var a;                         a = arr[j];                         arr[j] = arr[j + 1];                         arr[j + 1] = a;                     }                 }             }             return arr;         }         console.log(ismaopao([6, 3, 4, 5, 2, 1]))     </script>

          結(jié)果如下:

          一分鐘徹底理解JavaScript冒泡排序與選擇排序

          選擇排序

          • 思路:

          假設(shè)數(shù)組第一個位置的數(shù)最小,然后與后面的每一個數(shù)進行比較,只要找到更小的就交換值對應的下標,注意是下標。第一輪找一遍之后可以鎖定到最小值的位置了(就是找到了下標)然后就交換值。

          第二輪假設(shè)第二個位置的數(shù)最小,這時候不用管數(shù)組第一個值(因為第一輪找到已經(jīng)是最小的了)然后與后面最小值交換下標,鎖定后再交換值。

          重復步驟,直到排序完成。

          注意:到倒數(shù)第二輪完時,最后一輪還剩一個數(shù),肯定是比前面的數(shù)都還大,所以不用排序。即就是只用排序 數(shù)組的長度減一(arr.length-1)輪

          算法可視化:

          一分鐘徹底理解JavaScript冒泡排序與選擇排序

          代碼如下:

          沒有封裝,大家可以自己封裝一下

          <script>         //選擇排序,比冒泡排序次數(shù)少         var arr = [5, 3, 4, 2, 1]         var min = 0; //定義一個Min為數(shù)組的下標         for (var i = 0; i < arr.length - 1; i++) {             min = i;             for (var j = i + 1; j < arr.length; j++) {                 if (arr[min] > arr[j]) {                     min = j; //交換下標,就是交換位置                 }             }             var a = 0;             // 現(xiàn)在min的值就是對應著數(shù)組最小值的下標,             // 然后再用下標為i對應數(shù)組中的值來交換,i隨著每一輪的變化而變化             a = arr[min];             arr[min] = arr[i];             arr[i] = a;         }         console.log(arr);     </script>

          結(jié)果如下:

          一分鐘徹底理解JavaScript冒泡排序與選擇排序

          相關(guān)視頻教程推薦:jQuery視頻教程

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號