最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

利用js实现快速排序的方法

来源:动视网 责编:小采 时间:2020-11-27 20:13:16
文档

利用js实现快速排序的方法

利用js实现快速排序的方法: 快速排序,这也是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。1)算法原理 快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对
推荐度:
导读利用js实现快速排序的方法: 快速排序,这也是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。1)算法原理 快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对


快速排序,这也是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。

1)算法原理

快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。

2)算法描述

快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下:

<1> 从数列中挑出一个元素,称为 "基准"(pivot);

<2> 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;

<3> 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

3)javascript代码实现

function paritition(arr, low, high) {
 let pivot = arr[low];
 while (low < high) {
 while (low < high && arr[high] > pivot) {
 --high;
 }
 arr[low] = arr[high];
 while (low < high && arr[low] <= pivot) {
 ++low;
 }
 arr[high] = arr[low];
 }
 arr[low] = pivot;
 return low;
}
function quickSort(arr, low, high) {
 if (low < high) {
 let pivot = paritition(arr, low, high);
 quickSort(arr, low, pivot - 1);
 quickSort(arr, pivot + 1, high);
 }
 return arr;
}
 var arr=[1,45,37,5,48,15,37,26,29,2,46,4,17,50,52]; 
 console.log(quickSort(arr,0,arr.length-1));

4)算法分析

最佳情况:T(n) = O(nlogn)
最差情况:T(n) = O(n^2)
平均情况:T(n) = O(nlogn)

十大算法列表:

1.用JavaScript实现十大经典排序算法--冒泡排序

2.用JavaScript实现十大经典排序算法--选择排序

3.用JavaScript实现十大经典排序算法--插入排序

文档

利用js实现快速排序的方法

利用js实现快速排序的方法: 快速排序,这也是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。1)算法原理 快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对
推荐度:
标签: 利用 方法 使用
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top