随笔分类 -  算法

摘要:本文包括1.快速排序2.归并排序3.堆排序1.快速排序快速排序的基本思想是:采取分而治之的思想,把大的拆分为小的,每一趟排序,把比选定值小的数字放在它的左边,比它大的值放在右边;重复以上步骤,直到每个区间只有一个数。此时数组已经排序完成。快速排序最重要的是partition函数功能的实现,也就是将比... 阅读全文
posted @ 2015-08-12 16:06 yfsmooth 阅读(23554) 评论(0) 推荐(1)
摘要:本文包括:1.选择排序2.冒泡排序/双向冒泡排序3.插入排序1.选择排序选择排序是一种最为直观的排序方法。每次循环从数组中选择出一个最小或者最大的元素,按顺序重新放入数组中,直到所有的戴排序元素都排序完成。public void selectSort(int[] a){ int tem... 阅读全文
posted @ 2015-08-10 15:30 yfsmooth 阅读(7971) 评论(0) 推荐(0)
摘要:树是数据结构中很重要的一部分,也是各大公司面试常考部分。继树的各种遍历算法之后,今天又整理一下树的常见算法操作。本文包括:1.求节点的最近公共祖先2.树的序列化与反序列化3.已知先序遍历和中序遍历构造二叉树4.已知中序遍历和后序遍历构造二叉树1.求节点最近的公共祖先此题不同的要求有不同的解法如果已知... 阅读全文
posted @ 2015-07-25 21:55 yfsmooth 阅读(5116) 评论(0) 推荐(1)
摘要:这几天在复习关于树的各种算法,做了一些题,也搜索了网上各种算法,现在来总结一下树的各种常见算法。本文涵盖:二叉树先中后序遍历(递归&非递归)算法层次遍历(正序&逆序&锯齿形)非递归算法二叉树深度算法结点总数算法1.二叉树先序非递归遍历//先序非递归遍历 public ArrayList pre... 阅读全文
posted @ 2015-07-23 21:52 yfsmooth 阅读(6433) 评论(0) 推荐(2)
摘要:今天总结了有序表查找常用的三种算法与大家分享。1.折半查找折半查找又称二分查找,它的基本思想是:在有序表中,取中间记录作为比较对象,若相等则查找成功;若给定值小于中间记录的关键字,则在中间记录左半区继续查找,若给定值大于中间值,则在又半区寻找,不断重复以上过程。算法代码(java版)int bina... 阅读全文
posted @ 2015-06-24 15:02 yfsmooth 阅读(1108) 评论(0) 推荐(0)