• ADADADADAD

    javascript 十大排序[ 编程知识 ]

    编程知识 时间:2024-12-18 16:52:41

    作者:文/会员上传

    简介:

    JavaScript是一种常见的编程语言,在开发过程中,算法和排序是非常重要的。排序是指将数组中的元素按一定的规则进行排序的过程。下面是十大排序算法的介绍:function bubbleSort(

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    JavaScript是一种常见的编程语言,在开发过程中,算法和排序是非常重要的。排序是指将数组中的元素按一定的规则进行排序的过程。

    下面是十大排序算法的介绍:

    function bubbleSort(arr){for(let i=arr.length-1;i>0;i--){for(let j=0;jarr[j+1]){let temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}return arr;}

    冒泡排序是一个简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。

    function selectionSort(arr){for(let i=0;i

    选择排序是一种简单直观的排序算法。它的工作原理是每次从待排序的数据元素中选择最小(或最大)的一个元素作为首元素。

    function insertionSort(arr){for(let i=1;i=0 && arr[j]>temp){arr[j+1] = arr[j];j--;}arr[j+1] = temp;}return arr;}

    插入排序是一种简单直观的排序算法。它的工作原理是将一个记录插入到已经排好序的有序表中,从而得到一个新的有序表。

    function shellSort(arr){let len = arr.length, temp, gap = 1;while(gap< len/3){gap = gap * 3 + 1;}while(gap >0){for(let i=gap;i=0 && arr[j] >temp){arr[j+gap] = arr[j];j -= gap;}arr[j+gap] = temp;}gap = Math.floor(gap/3);}return arr;}

    希尔排序是插入排序的一种更高效的改进版本。它的工作原理是将数组划分成一些小的子序列,然后对每个子序列进行插入排序操作。

    function mergeSort(arr){if(arr.length< 2) return arr;let middle = Math.floor(arr.length/2),left = arr.slice(0,middle),right = arr.slice(middle);return merge(mergeSort(left),mergeSort(right));}function merge(left,right){let result = [];while(left.length && right.length){if(left[0]<= right[0]){result.push(left.shift());}else{result.push(right.shift());}}while(left.length) result.push(left.shift());while(right.length) result.push(right.shift());return result;}

    归并排序是一种稳定的排序算法。它的工作原理是将待排序的序列分成若干个子序列,每个子序列都是有序的,然后再将各个子序列合并成一个有序的序列。

    function quickSort(arr){if(arr.length<= 1) return arr;let pivotIndex = Math.floor(arr.length/2);let pivot = arr.splice(pivotIndex,1)[0];let left = [],right = [];for(let i=0;i

    快速排序是一个常用的排序算法。它的工作原理是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小。

    function heapSort(arr){let len = arr.length;buildHeap(arr);for(let i=len-1;i>0;i--){swap(arr,0,i);len--;heapify(arr,0,len);}return arr;}function buildHeap(arr){let len = arr.length;for(let i=Math.floor(len/2);i>=0;i--){heapify(arr,i,len);}}function heapify(arr,i,len){let left = 2 * i + 1,right = 2 * i + 2,largest = i;if(left< len && arr[left] >arr[largest]){largest = left;}if(right< len && arr[right] >arr[largest]){largest = right;}if(largest !== i){swap(arr,i,largest);heapify(arr,largest,len);}}function swap(arr,i,j){let temp = arr[i];arr[i] = arr[j];arr[j] = temp;}

    堆排序是一种选择排序。它的工作原理是将待排序的序列构造成一个完全二叉树,将根节点最大的值放在最后,然后重新构造一个新的二叉树,直到所有节点都遍历完毕。

    function countingSort(arr,m){let bucket = new Array(m).fill(0);let result = [];for(let i=0;i0){result[j++] = i;bucket[i]--;}}return result;}

    计数排序是一种非基于比较的排序算法。它的工作原理是根据待排序元素中的每个元素的值来确定排序后该元素在序列中的位置。

    javascript 十大排序.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载