Algorithms
文章平均质量分 52
aspook
公众号「像未来一样」
展开
-
二叉树的构建及各种遍历方式
树型结构是一种非常重要的非线性数据结构,在计算机领域应用广泛,本文以二叉树为例,详细介绍二叉树的构建及遍历方式,其中包含递归实现的先序遍历、中序遍历及后续遍历,以及非递归实现的深度优先遍历、广度优先遍历。以下是Java代码实现:package me.geed.algorithms;import java.util.LinkedList;import java.util.Queue;原创 2015-12-13 17:48:54 · 1071 阅读 · 0 评论 -
常用算法回顾——冒泡排序
原理冒泡排序是一种常用的排序方法,以升序排序为例,其原理是依次比较相邻两个数,如果第1个数比第2个数大,则交换位置,然后再比较第2个数和第3个数,直到比较完最后一个数,这样一轮排序下来,最大的一个数将会确定,并会被放到最后一个位置。如果共有N个数,则经过N轮排序下来,整个排序就会完成,其过程就像气泡上升,因此叫做冒泡排序。示例如下一个原始序列:7, 6, 4, 3, 8, 9, 5,原创 2015-12-30 14:22:44 · 876 阅读 · 0 评论 -
常用算法回顾——选择排序
原理选择排序是一种不稳定的初级排序算法,适用于数据量比较小的排序。假设升序排序,它的原理是:首先找出数组中最小的元素,将它与第一个元素交换,如果第一个元素本来就是最小的,则不交换;然后继续在剩下的元素中找到最小元素,将它与第二个元素交换位置,如此循环,直到排完整个数组。由于该方法不断选出最小元素,因此叫做选择排序,这种排序方式的数据移动是最少的,为数组长度N,但是大约需要比较(N*N) /2次原创 2015-12-27 12:19:24 · 181 阅读 · 0 评论 -
常用算法回顾——二分查找算法
原理假定查找范围为一个有序数组(如升序排列),要从中查找某一元素,如果该元素在此数组中,则返回其索引,否则返回-1。通过数组长度可取出中间位置元素的索引,将其值与目标值比较,如果中间位置元素值大于目标值,则在左部分进行查找,如果中间位置值小于目标值,则在右部分进行查找,如此循环,直到结束。二分查找算法之所以快是因为它没有遍历数组的每个元素,而仅仅是查找部分元素就能找到目标或确定其不存在,当然前原创 2015-12-27 11:34:26 · 977 阅读 · 0 评论 -
LRU算法原理
LRU(Least Recently Used)算法原理示意图原创 2016-06-17 14:46:46 · 1608 阅读 · 0 评论