网上关于快速排序的算法原理和算法实现都比较多,不过java是实现并不多,而且部分实现很难理解,和思路有点不搭调。所以整理了这篇文章。如果有不妥之处还请建议。首先先复习一些基础。 1、算法概念。 快 ...
网上关于快速排序的算法原理和算法实现都比较多,不过java是实现并不多,而且部分实现很难理解,和思路有点不搭调。所以整理了这篇文章。如果有不妥之处还请建议。首先先复习一些基础。 1、算法概念。 快 ...
方法一、用HashSet来解决 方法二、计算循环 用两个指针,一个fast指针,每次走两步,一个slow指针,每次走一步,当fast指针与slow指针相遇时,假设fast指针走了2x ...
今天看了一下JDK里面的二分法是实现,觉得有点小问题。二分法的实现有多种今天就给大家分享两种。一种是递归方式的,一种是非递归方式的。先来看看一些基础的东西。 1、算法概念。 二分查找算法也称为折半 ...
二叉树的遍历 二叉树的遍历分为三种:前序遍历 中序遍历 后序遍历 前序遍历:按照“根左右”,先遍历根节点,再遍历左子树 ,再遍历右子树 中序遍历:按照“左根右“,先遍历 ...
计数排序(counting sort) 计数排序并不基于元素的比较,而是一种利用数组下标来确定元素正确位置的算法。计数排序的核心在于将输入的数据值转化为键值存储在额外开辟的数组空间中。作为一种线 ...
最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。解法有很多,现在来总结一下: 1、穷举法 这是暴力的方法,即选择两个数中较小的一个作为遍历的范围大小。然后从1开始遍历 ...
我们曾在《计算机组成原理》这门课中学习过进制转换的相关知识,在这之前,我们应该首先了解一下原码、反码和补码。根据我们以前在《计算机组成原理》学到的知识,我们知道对于正数和负数,他们的原码、反码、补码是 ...
1、 归并排序(merge sort) 归并操作的工作原理如下: 1:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列; 2:设定两个指针,最初位置分别为两个已经排序序列的起 ...
散列表,它是基于高速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构能够理解为一个线性表,可是当中的元素不是紧密排列的,而是可能存在空隙。 散列表(Hash table,也 ...
递归算法就是在调用自己,循环的调用。是一种解决问题的常用算法,比较简单易于分析。递归有两个基本要素:边界条件,即确定递归何时停止运行,也叫递归出口;另一个就是递归模式,也就是如何将大问题分解为小问题的 ...