随笔分类 -  算法

摘要:``` / Created by xujw on 2017/10/16. 斗地主 单副扑克 没有癞子玩法 牌对象为{grade:3,face:1} grade 牌面点数(3 13:3 K, 14:A, 15:2, 16:小王 17:大王) face 牌面花色(1:黑桃、2:红桃、3:梅花、4:方块) 阅读全文
posted @ 2019-08-17 18:22 随风的博客 阅读(2030) 评论(0) 推荐(0)
摘要:直接插入排序算法即每次循环都把后面的数据插入到比它小的数据前面。直接插入排序插入有序序列中需要从后向前挨个扫描数据,并且还要将数据向后移为新数据腾出位置,显然当数据量大的时候效率很低,直接插入排序适用数据量小的情况 <! more 阅读全文
posted @ 2019-03-18 15:10 随风的博客 阅读(139) 评论(0) 推荐(0)
摘要:快速排序就是通过一趟排序将原数据分成两部分,其中一部分关键字都比另一部分小,接下来再对这两部分分别使用快速排序,这里有递归的思想。快速排序的平均时间复杂度为O(nlgn),所以适合数据量较大的情况,但快排需要频繁的对数据位置的操作,故不适合链式存储数据。<! more javascript func 阅读全文
posted @ 2019-03-18 15:08 随风的博客 阅读(231) 评论(0) 推荐(0)
摘要:冒泡排序,几乎每个程序员都会的经典排序算法,每趟循环都找出最大的值。时间复杂度最好最坏均为O(n²)。所以冒泡适合用于数据量非常小的排序。 阅读全文
posted @ 2019-02-27 17:28 随风的博客 阅读(145) 评论(0) 推荐(0)
摘要:经典排序算法之堆排序 若以升序排序说明,把 "数组" 转换成 "最大堆积" (Max Heap Heap),这是一种满足最大堆积性质(Max Heap Property)的 "二叉树" :对于除了根之外的每个节点i, A[parent(i)] ≥ A[i]。 重复从最大堆积取出数值最大的结点(把根结 阅读全文
posted @ 2019-02-27 17:26 随风的博客 阅读(219) 评论(0) 推荐(0)
摘要:直接选择算法和冒泡有异曲同工之妙。同样适合用于数据量非常小的排序。 javascript function sortSelect(arr) { for (let i = 0; i 阅读全文
posted @ 2019-02-27 17:25 随风的博客 阅读(155) 评论(0) 推荐(0)
摘要:归并排序 (英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的 "排序算法" , "效率" 为 ( "大O符号" )。1945年由 "约翰·冯·诺伊曼" 首次提出。该算法是采用 "分治法" (Divide and Conquer)的一个非常典型的应用,且各层分治递归可 阅读全文
posted @ 2019-02-27 17:21 随风的博客 阅读(303) 评论(0) 推荐(0)
摘要:​ 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。希尔排序适合数据量中等情况,几十个到几万个。 ​ 网上看了好久才彻底明白希尔排序是什 阅读全文
posted @ 2019-02-27 17:20 随风的博客 阅读(180) 评论(0) 推荐(0)