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

浙公网安备 33010602011771号