<font id="zqva1"></font>
<rt id="zqva1"></rt>
  • <tt id="zqva1"></tt>
    <cite id="zqva1"></cite>

    <cite id="zqva1"><noscript id="zqva1"></noscript></cite>
      <rp id="zqva1"><meter id="zqva1"></meter></rp>

        <cite id="zqva1"></cite>
          <b id="zqva1"></b>
          <rp id="zqva1"></rp>
          <cite id="zqva1"></cite>

          <rt id="zqva1"></rt>

        1. <rp id="zqva1"></rp>

          js洗牌算法:javascript數組隨機打亂順序的實現方法

          時間:?2017-11-20閱讀:?1441標簽:?算法

          有一個數組,我們需要通過js對數組的元素進行隨機排序,然后輸出,這其實就是洗牌算法,首頁需要從元素中隨機取一個和第一元進行交換,然后依次類推,直到最后一個元素。


          Fisher-Yates算法

          function randArr(arr){
          	for(var i=0;i<arr.length;i++){
          	    var random = Math.floor(Math.random() * (i + 1));
          	    [arr[i], arr[random]] = [arr[random], arr[i]];
          	}
          	return arr;
          }

          它的實現步驟:生成1-arr.length長度之間的隨機數random,把arr[random]和arr[i]的位置交換,然后重復上一步。直到i==arr.length的時候跳出循環。


          利用sort排序

          function randArr(arr){
          	arr.sort(function(){return Math.random()-0.5;});
          	return arr;
          }

          sort排序是在原數組上進行排序,sort的主要思路是根據參數的正負來排序,我們這里取個隨機數0~1,這個以0.5為分界線。

          注意:sort如果不帶參數,默認以“字母順序”進行排序。


          測試:

          var arr=['a','b','c'];
          console.log(randArr(arr));

          我們通過上面2種方法,都實現了數組順序的隨機打亂。



          站長推薦

          1.阿里云: 本站目前使用的是阿里云主機,安全/可靠/穩定。點擊領取2000元代金券、了解最新阿里云產品的各種優惠活動點擊進入

          2.騰訊云: 提供云服務器、云數據庫、云存儲、視頻與CDN、域名等服務。騰訊云各類產品的最新活動,優惠券領取點擊進入

          3.廣告聯盟: 整理了目前主流的廣告聯盟平臺,如果你有流量,可以作為參考選擇適合你的平臺點擊進入

          鏈接: http://www.modern-decoration.com.cn/article/detial/133

          Js常用的算法教程

          Js常用的算法教程 深度廣度、冒泡選擇、防抖節流等,函數在調用倒計時n時間內沒有重復調用,則執行函數,不然重新倒計時

          用 JavaScript 學習算法復雜度

          在后面的例子中,我將引用這兩個數組,一個包含 5 個元素,另一個包含 50 個元素。我還會用到 JavaScript 中方便的 performance API 來衡量執行時間的差異

          js實現分解質因數

          定義一個數組,用來存放因數; 定義數組里面數的位置的起始值0;定義分解質因數的函數;如果被分解的數為1、2、3,則直接存入數組,并返回結果

          Leetcode 242 有效的字母異位詞的三種解法

          題目描述:給定兩個字符串 s 和 t ,編寫一個函數來判斷 t 是否是 s 的字母異位詞。這個題目比較簡單,屬于一眼看過去就有思路的那種。我用了三種解法,你也嘗試一些別的方法, 拓寬思路。

          Js排列組合的實現

          猶記得高中數學,組合表示C(m, n),意思為從集合m,選出n個數生成一項,總共有多少個項的可能?組合是無序的,排列是有序的。所以排列的項數量多于組合

          Js找出數組中出現次數最多的元素

          給定一個數組,找出數組中出現次數最多的元素。給定數組 nums = [3,1,2,1,3,4,3,5,3,6,3], 函數應該返回: 次數最多的元素為:3, 次數為:5

          六種排序算法的Js實現

          本文將介紹數據排序的基本算法和高級算法。這些算法都只依賴數組來存儲數據。數組測試平臺首先我們構造一個數組測試平臺類,這些算法非常逼真地模擬了人類在現實生活中對數據的排序。

          數據結構與算法之緒論

          什么是數據結構?簡單來說可以解釋為:程序設計=數據結構+算法;主要是用來研究數據結構的關系,數據元素之間存在的一種或多種特定關系的集合;

          JS排序算法:記數排序

          計數排序是一個非基于比較的[排序算法],該算法于1954年由 Harold H. Seward 提出。 它的優勢在于在對一定范圍內的整數排序時,它的復雜度為Ο(n+k)(其中k是整數的范圍), 快于任何比較排序算法。

          RSA 背后的算法

          隨著科技發展,計算能力越來越強,特別是量子計算的興起,我們對超大質數的位數要求也越來越高,512 bit 的 RSA 已經被破解,而 1024 bit 也已經搖搖欲墜,現階段 2048 bit 長度還是安全的,可是未來,誰又知道呢?

          fly63.com版權所有,內容以共享、參考、研究為目的,不存在任何商業目的。其版權屬原作者所有,如有侵權,請與小編聯系!情況屬實本人將予以刪除!

          文章投稿關于web前端網站點搜索站長推薦網站地圖站長QQ:522607023

          小程序專欄: 土味情話心理測試腦筋急轉彎幽默笑話段子句子語錄成語大全

          国产精品高清视频免费 - 视频 - 在线观看 - 影视资讯 - 唯爱网