javascript算法:基本原理与代码实现

2023-12-31

JavaScript是一种广泛使用的编程语言,用于创建动态网页和Web应用程序。下面是一些JavaScript算法的基本原理和代码实现。

  1. 冒泡排序算法

冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

javascript复制代码
functionbubbleSort(arr) {  
var len = arr.length;  
for (var i = 0; i < len - 1; i++) {  
for (var j = 0; j < len - 1 - i; j++) {  
if (arr[j] > arr[j + 1]) {        // 如果前一个元素大于后一个元素,交换它们  
var temp = arr[j];  
        arr[j] = arr[j + 1];  
        arr[j + 1] = temp;  
      }  
    }  
  }  
return arr;  
}
  1. 二分查找算法

二分查找是一种在有序数组中查找特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

javascript复制代码
functionbinarySearch(arr, target) {  
var left = 0;  
var right = arr.length - 1;  
var mid;  
while (left <= right) {  
    mid = Math.floor((left + right) / 2); // 计算中间元素的索引  
if (arr[mid] === target) { // 如果找到了目标元素,返回它的索引  
return mid;  
    } elseif (arr[mid] < target) { // 如果目标元素大于中间元素,在右半部分继续查找  
      left = mid + 1;  
    } else { // 如果目标元素小于中间元素,在左半部分继续查找  
      right = mid - 1;  
    }  
  }  
// 如果数组中不存在目标元素,返回-1表示找不到  
return -1;  
}
  1. 分治算法(归并排序)

归并排序是一种分治算法的实现,它将一个大列表分解为两个小列表,分别对这两个小列表进行排序,然后将这两个小列表合并成一个有序的列表。这个过程递归地应用在每个子列表上,直到子列表的大小为1(已经排序)。然后,合并两个已排序的子列表以产生最终的排序列表。

javascript复制代码
functionmergeSort(arr) {  
if (arr.length < 2) { // 如果列表只有一个元素,直接返回该列表  
return arr;  
  } else { // 将列表一分为二,递归地对每半部分进行排序,然后将它们合并在一起。注意这里使用的是递归函数merge()来合并两个已排序的列表。  
var mid = Math.floor(arr.length / 2); // 计算中间元素的索引  
var left = arr.slice(0, mid); // 创建左半部分子列表  
var right = arr.slice(mid); // 创建右半部分子列表  
returnmerge(mergeSort(left), mergeSort(right)); // 递归地对左右两部分进行排序并合并它们。注意这里使用的是递归函数merge()来合并两个已排序的列表。  
  }  
}

brand-business-cellphone-204611.jpg

分享
写评论...