随笔分类 -  算法

摘要:结论:由于计数排序不是基于比较的排序,所以时间复杂度可以突破O(nlgn);计数排序时间复杂度为O(n),额外空间复杂度为O(n); Java实现代码如下: 阅读全文
posted @ 2018-08-05 23:37 itqczzz 阅读(184) 评论(0) 推荐(0)
摘要:堆排复习: 结论:堆排算法时间复杂度为O(nlgn),额外空间复杂度为O(1); 在开始堆排序过程之前先要熟悉两个结构 1,完全二叉树:若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(摘自百度百科) 阅读全文
posted @ 2018-08-05 23:10 itqczzz 阅读(805) 评论(0) 推荐(0)
摘要:归并排序复习: 结论:归并排序时间复杂度为O(nlgn),额外空间复杂度为O(n),实现可以做到稳定; 核心思想:典型的分冶策略思想: 第一步:拆分:递归对半拆分无序数组为无数的子数组; 第二步:排序:将子数组排好序; 第三步:合并:将子数组合并为和原先一样的长度的大数组;排序结束; 代码实现: 阅读全文
posted @ 2018-07-30 22:20 itqczzz 阅读(1210) 评论(0) 推荐(0)
摘要:求解递归式对于分冶算法的重要性不言而喻 以下介绍了三种求解递归式的方法 1,代换法: 缺点:代换法主要的缺点在于,对于任何递归式,我们先得去猜其解,对于猜错了同学,如果不幸猜出的结果和正确结果相差太大,虽然可以推导,但是意义不大; 优点:代换法相较于递归树法更为严谨,相较于主定理应用范围更广,主定理 阅读全文
posted @ 2018-07-29 23:27 itqczzz 阅读(2803) 评论(0) 推荐(1)
摘要:插入排序复习: 插入排序特点:插入排序是基于比较的排序,时间复杂度为O(n^2),额外空间复杂度为O(1),实现可做到稳定 核心思想:选择排序的核心思想为,遍历无序数组,每次将最小的数放置在已排好序的数组的尾端,遍历至数组倒数第二位时,数组已排好序。 以下为插入排序代码: 阅读全文
posted @ 2018-07-29 22:05 itqczzz 阅读(2277) 评论(0) 推荐(0)
摘要:插入排序复习: 先说结论:1,插入排序时间复杂度为O(n^2),额外空间复杂度为O(1);算法实现中可以做到稳定性; 核心思想:插入排序实现思想为,将待排序的数组视作一堆无序的牌,如果要将这堆无序的牌整理为有序,可以顺序依次抽出牌堆里的牌放入手中,每次从牌中抽出一张牌的时候,会将抽出的牌和手中的牌依 阅读全文
posted @ 2018-07-29 00:51 itqczzz 阅读(1732) 评论(0) 推荐(0)