21xrx.com
2024-12-22 22:34:37 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、算法、数组、字符串、二分查找、快速排序

  
  

评论区

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