常見算法2

常見算法2:https://segmentfault.com/a/1190000008593715

/**
  * @purpose: 冒泡排序
  * @param: {Array} arr => 需要排序的數(shù)組;
  * @return: {Array} arr => 排序后的數(shù)組;
  */
  /*function bubble(arr) {
    if(arr.length < 1) throw Error('數(shù)組為空數(shù)組');
    if(arr.length === 1) return arr;
    var len = arr.length;
    for(var i=1;i<len;i++) {
      for(var j=0;j<len-1;j++) {
        if(arr[j]>arr[j+1]) {
          // 不用第三個變量,交互兩個值
          arr[j] += arr[j+1];
          arr[j+1] = arr[j] - arr[j+1];
          arr[j] = arr[j] - arr[j+1];
        }
      }
    }
    return arr;
  }
  console.log(bubble([3,2,5,7,9,1]))*/
  /**
  * @purpose: 統(tǒng)計出現(xiàn)最多的字符串及數(shù)目
  * @param: {String} str => 任意字符串;
  * @return:
  */
  /*function statisticMaxChart(str) {
    // 字符串長度為1時
    if(str.length === 1) return str;
    // 統(tǒng)計字符及出現(xiàn)的次數(shù)
    var strObj = {};
    for(var i=0;i<str.length;i++) {
      if(!strObj[str.charAt(i)]){
        strObj[str.charAt(i)] = 1;
      }else{
        strObj[str.charAt(i)] += 1;
      }
    }
    // 統(tǒng)計出現(xiàn)最多字符及次數(shù)
    var maxValue = '',maxSum = 1;
    for(var k in strObj) {
      if(strObj[k] > maxSum) {
        maxValue = k;
        maxSum = strObj[k];
      }
    }
    console.log(maxValue+'出現(xiàn)最多為'+maxSum+'次')
  }
  statisticMaxChart('jacksayhelloyouknow')*/
  /**
  * @purpose: 二分查找法
  * @param: {Array} arr => 數(shù)據(jù)源;{String} key => 需要查找的數(shù)據(jù)
  * @return:
  */
  /*function cutSearch(arr,key) {
    var low = 0,height = arr.length;
    while(low <= height) {
      var mid = parseInt((low+height)/2);  // 4
      if(key == arr[mid]) {
        return arr[mid]
      }else if(key > arr[mid]) {
        low = mid + 1;
      }else if(key < arr[mid]) {
        height = mid - 1;
      }
    }
    return -1;
  }
  console.log(cutSearch([1,2,3,4,5,6],4))*/
  /**
  * @purpose: 二分查找法(遞歸)
  * @param: {} arr => ;
  * @return:
  */
  function test() {

  }
  /**
  * @purpose: 數(shù)組去重(hash)
  * @param: {Array} arr => 需要去重的數(shù)組;
  * @return: {Array} newArr => 返回去重后的新數(shù)組
  */
  function unique1(arr) {
    if(arr.length === 1) return arr;
    var obj = {},newArr = [];
    for(var i=0;i<arr.length;i++) {
      if(!obj[arr[i]]) {
        obj[arr[i]] = true;
        newArr.push(arr[i]);
      }
    }
    return newArr;
  }
  console.log(unique1([4,3,6,2,7,2,3]))
  /**
  * @purpose: 數(shù)組去重(排序)
  * @param: {} arr => ;
  * @return:
  */
  function test(arr) {

  }
  /**
  * @purpose: 數(shù)組去重(常規(guī))
  * @param: {} arr => ;
  * @return:
  */
  function test() {

  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 算法一:快速排序算法 快速排序是由東尼·霍爾所發(fā)展的一種排序算法。在平均狀況下,排序 n 個項目要Ο(n log ...
    面條168閱讀 1,961評論 2 6
  • 作為一個前端程序猿,下面這些站會讓你眼前一亮。 amazeui框架組建豐富 http://amazeui.org...
    歐巴冰冰閱讀 9,015評論 18 303
  • 剛好翻日歷,才意識到我已經(jīng)畢業(yè)一年了。從去年6月14號出來正式上班,到今天,一年零一周了。 一年過去了,發(fā)現(xiàn)自己依...
    Francis_003閱讀 327評論 0 0
  • 【大楚】的情書 大楚寶貝, 昨天睡覺前我們做的最后一件事情,就是在涂鴉墻上列出了今天的“to do list”,...
    浮沉浮沉閱讀 179評論 0 0
  • 6月份初去了一趟地級市,回來之后由于折騰炒股的原因,沒有繼續(xù)執(zhí)行上月的學(xué)習(xí)計劃。5月份執(zhí)行#主題學(xué)習(xí)#效果沒有達到...
    謝文武閱讀 456評論 0 3

友情鏈接更多精彩內(nèi)容