21xrx.com
2024-09-17 04:19:28 Tuesday
登录
文章检索 我的文章 写文章
《JavaScript算法书籍推荐》知乎热门问题解答
2023-06-14 12:27:14 深夜i     --     --
JavaScript 算法 书籍推荐

在学习JavaScript编程时,了解算法的重要性不言而喻。而如何选择一本好的JavaScript算法书籍,则成为了很多学习者的疑问。下面就是一些知乎网友给出的优质JavaScript算法书籍推荐。

1.《JavaScript数据结构与算法》

作为一本初学者入门的好书,该书介绍了JavaScript中各种常用的数据结构和算法,内容易懂易上手,并且不需要太多的基础。


function binary_search(arr, x) {

  let low = 0, high = arr.length - 1;

  while (low <= high) {

    let mid = Math.floor((low + high) / 2);

    if (arr[mid] < x) {

      low = mid + 1;

    } else if (arr[mid] > x)

      high = mid - 1;

     else

      return mid;

    

  }

  return -1;

}

2.《算法图解》

该书介绍的算法广泛且深入浅出,能够满足不同层次的读者需求,对于学习和实践算法有很大的帮助。


function quicksort(arr) {

  if (arr.length < 2) return arr;

  let pivot = arr[0];

  let left = [];

  let right = [];

  for (let i = 1; i < arr.length; i++) {

    if (arr[i] < pivot) {

      left.push(arr[i]);

    } else {

      right.push(arr[i]);

    }

  }

  return quicksort(left).concat([pivot], quicksort(right));

}

3.《算法导论》

虽然该书内容较为严谨,但对于想要深入学习算法的读者来说十分有帮助。


function find_kth_smallest(arr, k) {

  if (k >= arr.length) throw 'k out of bounds';

  let pivot = arr[Math.floor(Math.random() * arr.length)];

  let left = [];

  let right = [];

  let middle = [];

  for (let i = 0; i < arr.length; i++) {

    if (arr[i] < pivot) {

      left.push(arr[i]);

    } else if (arr[i] > pivot) {

      right.push(arr[i]);

    } else {

      middle.push(arr[i]);

    }

  }

  if (k < left.length) {

    return find_kth_smallest(left, k);

  } else if (k < left.length + middle.length)

    return pivot;

   else {

    return find_kth_smallest(right, k - left.length - middle.length);

  }

}

通过这些书籍的学习,不仅能加强对JavaScript的理解,还能提高编程能力。希望以上推荐能够帮助到需要学习算法的读者。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复