![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
蓝星蓝
Java程序员,web后台开发
展开
-
非递归二叉树遍历
非递归二叉树遍历是面试中最容易问道的问题,其可以考察应聘者对二叉树遍历的掌握程度,又可以测试出面试者的编码能力。原创 2014-12-08 21:45:38 · 868 阅读 · 0 评论 -
全排列的递归实现
对于全排列问题,假设我们有n个不同的数字,需要对其进行全排列,那么全排列的总数为f(n),f(n) = n * f(n - 1)。我们可以看做是将第一个数字固定,然后后边n-1个数字进行全排,这样第一个数字就有n中选择。同理,在求f(n - 1)时,可以看做第二个数字固定,后边n-2个数字进行全排,这样第二个数字就有n-2种选择。具体实现程序如下:int swap(int &a, int &b原创 2014-12-14 01:20:45 · 436 阅读 · 0 评论 -
常用排序算法稳定性分析
常用排序算法稳定性分析【1】选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法冒泡排序、插入排序、归并排序和基数排序都是稳定的排序算法。【2】研究排序算法的稳定性有何意义?首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。再简单具体一点,如果A i == A j,Ai 原转载 2015-04-23 10:48:01 · 504 阅读 · 0 评论 -
并发编程(volatile和synchronized)
并发编程(volatile和synchronized)大家都知道,并发编程主要是运用多线程来提高程序的运算速度并提高机器的使用率。而并发程序运行的最大挑战就是公共资源的访问冲突。对于公共资源的访问主要分为读和写 公共资源读:需要保证各个线程读到的公共资源时最新的 公共资源写:需要防止多个线程对公共资源的写冲突 在Java中,利用volatile关键字和synchronize...原创 2018-10-20 16:38:43 · 3909 阅读 · 0 评论