算法
cq-wangyong
记录所学;
不做框架的搬运工,学做框架的创造者
展开
-
排序算法-快速排序
快速排序,是选择一个数作为基数(通常是中间数),然后把比他小的数放左边,比他大的数放右边,再递归调用方法处理左右两侧的数据;直至传入的数组只有一个元素为止function quickSort(arr) { var len=arr.length; if (len <= 1) { return arr; } var pivotIndex = Math.floor(len / 2); var pivot = arr.splice(pivotInd原创 2021-02-23 00:12:40 · 193 阅读 · 0 评论 -
排序算法-归并排序
将数组一分为二,直至只有一个元素function mergeSort(arr){ let len=arr.length; if(len<2){ return arr; } var middle=Math.floor(len/2), left=arr.slice(0,middle), right=arr.slice(middle); return merge(mergeSort(left),mergeSort(right));原创 2021-02-19 21:21:49 · 116 阅读 · 0 评论 -
排序算法-冒泡排序
相邻两个数比较,如果前面的数字大于后面的数则交换function sort(arr){ for(var i=0,len=arr.length;i<len-1;i++){ for(j=0;j<len-i-1;j++){ if(arr[j]>arr[i]){ let temp=arr[i]; arr[i]=arr[j]; arr[j]=temp;原创 2021-02-19 21:09:45 · 133 阅读 · 2 评论 -
排序算法-希尔排序
又名缩小增量排序,插入排序缺点:每次只能将数据移动一位function sort(arr){ var len=arr.length; var increment=Math.floor(len/2); while(increment!=0){ for(var i=increment;i<len;i++){ var temp=arr[i]; for(var j=i-increment;j>=0&&原创 2021-02-19 21:04:38 · 115 阅读 · 0 评论 -
排序算法-插入排序
从数组第二个元素开始,将数组分为左边(已排序)和右边(未排序)两部分将基数和左边的数依次比较,遇到比其大的,则将比较数字往后移一位,反之将基数赋值给当前下标数字(比较数字的后一位)function sort(arr){ var len=arr.length; var temp;//基准数 for(var i=1;i<len;i++){ temp=arr[i]; for(var j=i;j>0&&temp<ar原创 2021-02-19 20:45:54 · 152 阅读 · 1 评论 -
排序算法-选择排序
从第一个元素开始,选择一个数作为基数,依次和后面的数作比较,如果比较数字比基数小时相互交换第一种:比较时直接交换function sort(arr){ let len=arr.length; for(let i=0;i<len-1;i++){ for(let j=i+1;j<len;j++){ if(arr[i]>arr[j]){ let temp=arr[i];原创 2021-02-19 20:27:35 · 119 阅读 · 0 评论