思路,将一个数组不断拆分,拆到一个元素之后,倒过来一步步排好序,获得新的数组 [55,23,66,905,56,85,356,30,57,34,832,230] left=[55,23,66,905,56,85] right=[356,30,57,34,832,230] left可以看成一个新数组, ...
分类:
编程语言 时间:
2020-05-18 18:18:53
阅读次数:
64
## java最新面试题2020# 一面 1. 手撕twosum代码,手撕归并排序,还有一个题忘了,我记得是用hashmap做2. 讲一下Java垃圾回收分代回收各种算法3. Java内存结构4. Java堆存哪些数据5. 讲一下四种引用6. Java语言的特性7. 抽象,多态8. 项目中一个模块具... ...
分类:
编程语言 时间:
2020-05-18 14:08:18
阅读次数:
147
天天写前端的你,会自己写一个轮播图吗,而且不能用js哦,知道轮播图的原理吗? 今天我们要讲的是如何只用css实现轮播图效果,也叫 ,就是我们经常在APP或网站首页顶部看到的一系列图片切换。就像淘宝官网首页那样: 实现原理 一图胜千言,先上图: 解释一下,轮播图并排排列,组成一张很宽的图片,而手机屏幕 ...
分类:
Web程序 时间:
2020-05-17 19:28:03
阅读次数:
90
快速排序 时间复杂度:O(nlogn) def partition(li, left, right): tmp = li[left] while left < right: while left < right and li[right] >= tmp: # 从右边找比tmp小的数 right -= ...
分类:
编程语言 时间:
2020-05-17 17:45:40
阅读次数:
64
一、归并排序 先通过递归将列表元素分开,然后通过合并比较大小进行排序。 二、上代码 def merge(li, low, mid, high): """ 归并排序 :param li:参数列表 :param low: 列表最左边 :param mid: 列表中间的 :param high: 列表最右 ...
分类:
编程语言 时间:
2020-05-17 13:31:42
阅读次数:
83
[TOC] 归并排序思路 1)找到单链表中间节点,从而将原链表分为左右两部分; 2)对左右两部分链表分别进行归并排序,并合并左右两部分; 3)分别对两部分重复上述操作,直到所有元素都已排序成功。 因为单链表只能从链表头节点向后遍历,第一步操作用快慢指针找链表中点的时间复杂度就为O(n)。由于之后都是 ...
分类:
编程语言 时间:
2020-05-16 00:44:59
阅读次数:
82
归并排序 利用归并的思想实现的排序方法 二路归并排序原理 假设初始序列有n个记录,则可以看成n个有序的子序列,每个子序列的长度为1 然后两两归并,得到┌n/2┐个长度为2或1的有序子序列;再次两两归并,... 如此重复,直到得到一个长度为n的有序序列为止 1 #include <stdio.h> 2 ...
分类:
编程语言 时间:
2020-05-15 13:15:47
阅读次数:
52
博客:https://www.cnblogs.com/chengxiao/p/6194356.html https://www.cnblogs.com/piperck/p/6030122.html python实现: def merge(left, right): """ params: left= ...
分类:
编程语言 时间:
2020-05-14 09:11:45
阅读次数:
64
采用分治思想,分治其实也是一种递归,递归的三个条件:递推公式,终止条件,递归代码实现 package dsaa.归并排序; import java.util.Arrays; /* * 归并排序 * */ public class MergeSortSolution { public static i ...
分类:
编程语言 时间:
2020-05-13 23:29:28
阅读次数:
68
注意,这道题思路可以把长宽确定好,短的放前面即可,然后用pair保存并排序,如果第一个和第二个,第三个和第四个,第五个和第六个相同且第一个的x和第二个的x,第一个的y和第三个的x,第二个的y和第三个的y相同才行,因为长方体三条边abc,设a<b<c,那么(a,b)排在最前面(a,c)边第二,(b,c ...
分类:
其他好文 时间:
2020-05-13 21:46:09
阅读次数:
61