遞歸演算法: 優點:代碼簡潔、清晰,並且容易驗證正確性。 缺點: 1、它的運行需要較多次數的函數調用,如果調用層數比較深,每次都要創建新的變數,需要增加額外的堆棧處理,會對執行效率有一定影響,占用過多的記憶體資源。 2、遞歸演算法解題的運行效率較低。在遞歸調用的過程中系統為每一層的返回點、局部變數等開闢了 ...
遞歸演算法: 優點:代碼簡潔、清晰,並且容易驗證正確性。 缺點: 1、它的運行需要較多次數的函數調用,如果調用層數比較深,每次都要創建新的變數,需要增加額外的堆棧處理,會對執行效率有一定影響,占用過多的記憶體資源。 2、遞歸演算法解題的運行效率較低。在遞歸調用的過程中系統為每一層的返回點、局部變數等開闢了棧來儲存。遞歸次數過多容易造成棧溢出等 註意:遞歸就是在過程或函數里調用自身;使用遞歸策略時要註意的幾個條件 1、必須有一個明確的遞歸結束條件,稱為遞歸出口。 2、遞歸需要有邊界條件、遞歸前進段和遞歸返回段。 3、當邊界條件不滿足時,遞歸前進。當邊界條件滿足時,遞歸返回。 迴圈演算法: 優點:速度快,結構簡單。 缺點:並不能解決所有的問題。有的問題適合使用遞歸而不是迴圈。如果使用迴圈並不困難的話,最好使用迴圈 029、創建數組的幾種方式 三種方式: 1、var arr = new Array(); 2、var arr = Array 3、var arr = []; 030、如果判斷一個對象是不是另一個對象創建出來的 數組.instanceof Array 031、數組常用的一些方法 1、push: 在數組最後添加一個或者多個元素,返回添加後數組的長度 2、pop: 從數組最後取出一個元素,返回的是數組的最後一個元素(取出的元素) 3、unshift: 和push相反,從數組的第一位的前面開始添加 4、shift: 和pop相反從數組的第一位開始取,返回取出的值 5、sort 排序方法 6、reverse 反轉 上面的6種方式都在原數組進行操作,會改變原本的數組 032、如何將數組轉換為字元串?如何將字元串轉換為數組 var str = 數組.join('') var arr = 字元串.split('') 除此之外還有toString() 033、簡單談一談關於值傳遞與引用傳遞 值傳遞:傳遞的是基本數據類型的數據(數據不會發生改變) 引用傳遞:傳遞的是對象(數組、對象)對象存儲在堆空間中,自身可以發生改變 034、關於數組的排序請用至少2種方式進行排序 冒泡 選擇 快速 代碼自己寫 035、什麼是json? JSON(JavaScript Object Notation, JS 對象標記) 是一種輕量級的數據交換格式,用來來存儲和表示數據 語法: [ {鍵:值}, {鍵:值}, {鍵:值}, ]