JavaScript算法和数据结构:实现一个快速排序算法。

简介: JavaScript算法和数据结构:实现一个快速排序算法。

快速排序是一种常用的排序算法,它采用分治法的思想,通过递归地将数组分成较小的部分来进行排序。下面是一个简单的 JavaScript 实现:

function quickSort(arr) {
   
  if (arr.length <= 1) {
   
    return arr;
  }

  // 选择基准点(pivot)
  const pivot = arr[0];

  // 将数组分成两部分:小于基准点的部分和大于基准点的部分
  const less = arr.slice(1).filter(element => element <= pivot);
  const greater = arr.slice(1).filter(element => element > pivot);

  // 递归地对小于和大于基准点的部分进行快速排序
  return quickSort(less).concat([pivot], quickSort(greater));
}

// 示例
const unsortedArray = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
const sortedArray = quickSort(unsortedArray);
console.log(sortedArray);

这个实现中,选择数组的第一个元素作为基准点(pivot)。然后,将数组中小于等于基准点的元素放在左侧,大于基准点的元素放在右侧。接着,递归地对左右两部分进行快速排序,最终将它们合并起来。

注意:上述实现并没有对原始数组进行就地排序,而是返回了一个新的有序数组。在实际应用中,你可能会在原始数组上进行排序,而不是创建新的数组。

相关文章
|
2天前
数据结构第六课 -------迭代排序(快速排序和归并排序)
数据结构第六课 -------迭代排序(快速排序和归并排序)
|
2天前
|
JavaScript 前端开发 算法
【JavaScript技术专栏】使用JavaScript实现常见算法
【4月更文挑战第30天】本文介绍了如何使用JavaScript实现常见算法,包括排序、搜索和图算法。首先,通过JavaScript的`sort`方法讨论了排序算法,以快速排序为例展示了自定义排序的实现。接着,探讨了二分查找这一高效的搜索算法,并提供了实现代码。最后,解释了深度优先搜索(DFS)图算法,并给出了在JavaScript中的实现。理解并运用这些算法能有效提升编程能力。
|
3天前
数据结构——lesson11排序之快速排序
数据结构——lesson11排序之快速排序
|
3天前
|
搜索推荐 算法 Java
快速排序------一种优雅的排序算法
快速排序------一种优雅的排序算法
|
3天前
|
存储 机器学习/深度学习 算法
|
7天前
|
存储 算法
数据结构开篇(普普通通浅浅聊数据结构)什么是数据结构 、什么是算法、重要性、如何学好数据结构呢
数据结构开篇(普普通通浅浅聊数据结构)什么是数据结构 、什么是算法、重要性、如何学好数据结构呢
|
15天前
|
算法
快速排序——“数据结构与算法”
快速排序——“数据结构与算法”
|
17天前
|
存储 机器学习/深度学习 算法
上机实验三 图的最小生成树算法设计 西安石油大学数据结构
上机实验三 图的最小生成树算法设计 西安石油大学数据结构
19 1
|
23天前
|
算法 数据处理 C语言
【数据结构与算法】快速排序(详解:快排的Hoare原版,挖坑法和双指针法|避免快排最坏时间复杂度的两种解决方案|小区间优化|非递归的快排)
【数据结构与算法】快速排序(详解:快排的Hoare原版,挖坑法和双指针法|避免快排最坏时间复杂度的两种解决方案|小区间优化|非递归的快排)
|
24天前
|
JavaScript
EasyUi js 加载数据进下拉框combobox
EasyUi js 加载数据进下拉框combobox