最新文章专题视频专题问答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 19:35:57
文档

有关JS希尔排序算法(详细教程)

有关JS希尔排序算法(详细教程):这篇文章主要介绍了JS排序算法之希尔排序与快速排序实现方法,结合实例形式分析了希尔排序与快速排序的原理及javascript实现技巧,需要的朋友可以参考下本文实例讲述了JS排序算法之希尔排序与快速排序实现方法。分享给大家供大家参考,具体如下:希尔排序:定义
推荐度:
导读有关JS希尔排序算法(详细教程):这篇文章主要介绍了JS排序算法之希尔排序与快速排序实现方法,结合实例形式分析了希尔排序与快速排序的原理及javascript实现技巧,需要的朋友可以参考下本文实例讲述了JS排序算法之希尔排序与快速排序实现方法。分享给大家供大家参考,具体如下:希尔排序:定义

这篇文章主要介绍了JS排序算法之希尔排序与快速排序实现方法,结合实例形式分析了希尔排序与快速排序的原理及javascript实现技巧,需要的朋友可以参考下

本文实例讲述了JS排序算法之希尔排序与快速排序实现方法。分享给大家供大家参考,具体如下:

希尔排序:

定义一个间隔序列,例如是5,3,1。第一次处理,会处理所有间隔为5的,下一次会处理间隔为3的,最后一次处理间隔为1的元素。也就是相邻元素执行标准插入排序。

在开始最后一次处理时,大部分元素都将在正确的位置,算法就不必对很多元素进行交换,这是比插入元素高级的地方。

时间复杂度O(n*logn)

function shellSort(){
 var N=arr.length;
 var h=1;
 while(h<N/3){
 h=3*h+1;//设置间隔
 }
 while(h>=1){
 for(var i=h; i<N; i++){
 for(j=i; j>=h && arr[j]<arr[j-h]; j-=h){
 swap(arr, j, j-h);
 }
 }
 h=(h-1)/3;
 }
}
function swap(array, i, j){//两个数调换
 var temp =array[j];
 array[j]=array[i];
 array[i]=temp;
}

快速排序:

通过递归的方式将数据依次分解成包含较小元素和较大元素的不同子序列,不断重复这个步骤,直到所有数据都是有序的。

选一个基准值,小于基准值的放一个数组里面。大于基准值的放一个数组里面。

时间复杂度O(n*logn)

function quickSort(arr){
 if(arr.length==0){
 return [];
 }
 var left=[];
 var right=[];
 var p=arr[0];
 for(var i=1; i<arr.length; i++){
 if(arr[i]<p){
 left.push(arr[i]);
 }else{
 right.push(arr[i]);
 }
 }
 return quickSort(left).concat(p,quickSort(right));
}

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在javaScript中有关空值和假值的说法

在Webpack中有关自动化构建(详细教程)

在微信小程序中如何实现图片上传等一系列功能

如何搭建前端通用的数据模拟框架(详细教程)

文档

有关JS希尔排序算法(详细教程)

有关JS希尔排序算法(详细教程):这篇文章主要介绍了JS排序算法之希尔排序与快速排序实现方法,结合实例形式分析了希尔排序与快速排序的原理及javascript实现技巧,需要的朋友可以参考下本文实例讲述了JS排序算法之希尔排序与快速排序实现方法。分享给大家供大家参考,具体如下:希尔排序:定义
推荐度:
标签: 步骤 教程 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top