![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
quan!!!
这个作者很懒,什么都没留下…
展开
-
常见的排序算法----冒泡排序(交换排序类,JavaScript实现)
冒泡排序基本思想:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。最简单排序实现function simpleSort(arr) { for(var i = 0; i < arr.length; i++) { for(var j = i+1; j < arr.length; j++) { if(arr[i] > arr[j]) { sw...原创 2019-02-11 20:52:59 · 153 阅读 · 0 评论 -
常见的排序算法----简单选择排序(选择排序类,JavaScript实现)
选择排序思想选择排序算法是一种原址比较排序算法。选择排序大致的思路是找到数据结构中的最小值并将其放置在第一位,接着找到第二小的值并将其放在第二位,以此类推。function selectionSort(arr) { var min; for(var i = 0; i < arr.length-1; i++) { min = i; for(v...原创 2019-02-11 22:05:12 · 120 阅读 · 0 评论 -
常见的排序算法----直接插入排序(插入排序类,JavaScript实现)
思想在已排好序中的序列中插入下一个待插入的元素,一般情况下初始时把第一个元素当成已排好序。从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果已排序好的元素大于新元素,将该元素移到下一位置重复步骤3,直到找到已排序的元素小于或者等于新元素的位置将新元素插入到合适位置中重复步骤2function insertionSort(arr) {...原创 2019-02-12 12:57:34 · 199 阅读 · 0 评论 -
常见的排序算法----折半插入排序(插入排序类,JavaScript实现)
思想在直接插入排序的基础上,在插入的时候运用了折半查找法查找要插入的位置,再进行插入。function binsertSort(arr) { var low, high, j, temp; for(var i = 1; i < arr.length; i++) { temp = arr[i]; low = 0; high ...原创 2019-02-12 13:46:08 · 361 阅读 · 0 评论 -
常见的排序算法----希尔排序(插入排序类,JavaScript实现)
思想直接插入排序在某些时候效率是很高的,比如在(1)数组本来就有序的时候,或者基本有序的时候,或者(2)本来的元素很少这样只需要进行很少的插入操作,效率就会变高了但是这两个条件非常苛刻,那虽然条件可能本身不存在,但是可以人为创造条件让元素变得基本有序,最后再执行直接插入排序是希尔排序的根本思想做法是:将原数组按照一定距离进行分组,并将各个分组进行插入排序,最后就可以变得基本有序,如...原创 2019-02-12 15:56:41 · 200 阅读 · 2 评论 -
常见的排序算法----归并排序(归并排序类,JavaScript实现)
思路归并排序是成功应用分治法的一个完美的例子,其思想是将原始数组切分成较小的数组,直到每个小数组只有一个位置,接着将小数组归并成较大的数组,直到最后只有一个排序完毕的大数组。由于是分治法,归并排序也是递归的。function mergeSort(arr) { if (arr.length == 1) { return arr }; var mid =...转载 2019-02-13 17:40:53 · 193 阅读 · 0 评论 -
常见的排序算法----快速排序(交换排序类,JavaScript实现,阮一峰版本)
历史目前,最常见的排序算法大概有七八种,其中"快速排序"(Quicksort)使用得最广泛,速度也较快。它是图灵奖得主C. A. R. Hoare(1934–)于1960时提出来的。思想在数据集之中,选择一个元素作为"基准"(pivot)。所有小于"基准"的元素,都移到"基准"的左边;所有大于转载 2019-02-13 18:17:18 · 627 阅读 · 1 评论 -
常见的排序算法----快速排序(交换排序类,JavaScript实现,经典版本)
前言    快速排序也许是最常用的排序算法了。它的复杂度为O(nlogn),且它的性能通常比其他的复杂度为O(nlogn)的排序算法要好。和归并排序一样,快速排序也使用分治的方法,将原始数组分为较小的数组(但它没有像归并排序那样将它们分割开)。思想    (1) 首先,从数组中选择中间一项作为主元原创 2019-02-13 19:15:43 · 144 阅读 · 0 评论 -
常见的排序算法----堆排序(选择类,JavaScript实现,经典版本)
//调整函数 function headAdjust(elements, pos, len) { //将当前节点值进行保存 var swap = elements[pos]; //定位到当前节点的左边的子节点 var child = pos * 2 + 1; //递归,直至没有子节点为止 ...转载 2019-02-13 21:33:50 · 162 阅读 · 0 评论