21xrx.com
2025-03-23 14:31:45 Sunday
文章检索 我的文章 写文章
学习 JavaScript 算法:从入门到进阶
2023-06-18 16:45:08 深夜i     --     --
JavaScript 算法 数组 字符串 二分查找 快速排序

JavaScript 算法是前端开发中必要的一环,运用好算法可以提高代码效率,让网站更流畅,更快速。本文将从基础知识到进阶算法,为你打开 JavaScript 算法的大门。

一、基础知识

1.1 数组操作

数组是 JavaScript 算法中常用的一种数据结构,可以通过以下代码进行操作:

// 创建数组
let arr = [1, 2, 3, 4, 5];
// 排序数组
arr.sort();
// 遍历数组
for(let i=0;i
 console.log(arr[i]);
}
// 求和
let sum = arr.reduce((total, currentValue)=>{
 return total + currentValue;
});
console.log(sum);

1.2 字符串操作

字符串操作也是 JavaScript 算法中的常用操作之一,以下是一些常见的实例:

// 字符串长度
let str = 'hello world';
let len = str.length;
console.log(len);
// 字符串替换
let newStr = str.replace('world', 'JavaScript');
console.log(newStr);
// 大小写转换
let upStr = str.toUpperCase();
let lowStr = str.toLowerCase();
console.log(upStr);
console.log(lowStr);

二、进阶算法

2.1 二分查找

二分查找是一种快速查找的算法,可以通过以下代码实现:

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
function binarySearch(arr, target) {
 let left = 0;
 let right = arr.length - 1;
 while(left <= right) {
  let mid = Math.floor((left + right) / 2);
  if (arr[mid] === target)
   return mid;
   else if (arr[mid] < target) {
   left = mid + 1;
  } else
   right = mid - 1;
  
 }
 return -1;
}
console.log(binarySearch(arr, 5));

2.2 快速排序

快速排序也是一种常见的排序算法,以下是一个实现例子:


function quickSort(arr) {

 if (arr.length <= 1)

  return arr;

 

 let pivotIndex = Math.floor(arr.length / 2);

 let pivot = arr[pivotIndex];

 let left = [];

 let right = [];

 for(let i=0;i

  if (i === pivotIndex)

   continue;

  

  if (arr[i] < pivot) {

   left.push(arr[i]);

  } else {

   right.push(arr[i]);

  }

 }

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

}

let arr = [3, 6, 1, 0, 9, 2, 4, 7, 5, 8];

console.log(quickSort(arr));

三、关键词

JavaScript、算法、数组、字符串、二分查找、快速排序

  
  

评论区