摘要:
冒泡排序,几乎每个程序员都会的经典排序算法,每趟循环都找出最大的值。时间复杂度最好最坏均为O(n²)。所以冒泡适合用于数据量非常小的排序。 阅读全文
摘要:
经典排序算法之堆排序 若以升序排序说明,把 "数组" 转换成 "最大堆积" (Max Heap Heap),这是一种满足最大堆积性质(Max Heap Property)的 "二叉树" :对于除了根之外的每个节点i, A[parent(i)] ≥ A[i]。 重复从最大堆积取出数值最大的结点(把根结 阅读全文
摘要:
直接选择算法和冒泡有异曲同工之妙。同样适合用于数据量非常小的排序。 javascript function sortSelect(arr) { for (let i = 0; i 阅读全文
摘要:
归并排序 (英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的 "排序算法" , "效率" 为 ( "大O符号" )。1945年由 "约翰·冯·诺伊曼" 首次提出。该算法是采用 "分治法" (Divide and Conquer)的一个非常典型的应用,且各层分治递归可 阅读全文
摘要:
希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。希尔排序适合数据量中等情况,几十个到几万个。 网上看了好久才彻底明白希尔排序是什 阅读全文