![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
牧歌_东
这个作者很懒,什么都没留下…
展开
-
Java——归并排序
在讲解归并排序之前,我们必须先知道什么是递归,因为在归并排序中我们用到了递归。 递归 什么是递归呢?递归方法就是直接或者间接调用自身的方法。简单来说就是自己调用自己的方法,用一个条件去控制这个递归,防止进入死循环。 用一个例子来说明递归。我们都学过阶乘,当我们计算一个一个数字的阶乘的时候不可能在程序中自己手动一个个去计算,这个时候就可以根据阶乘的规律性去写一个递归的方法: 核心方法: if(n =...原创 2019-01-17 17:13:47 · 191 阅读 · 0 评论 -
Java—直接插入排序
直接插入排序是一种最简单的排序算法,在后续我会继续发布其他的简单排序;直接插入的算法基本思想是:仅有一个元素的序列总是有序的,因此,对n个记录的序列,可从第二个元素开始直接到第n个元素,逐个向有序序列中执行插入操作,从而得到n个元素按关键字有序的序列。一般来说,在含有j-1个元素的有序序列中插入一个元素的方法是:从第j-1个元素开始依次向前搜索应当插入的位置,并且在搜索插入位置的同时可以后移元素,...原创 2019-01-07 16:59:56 · 192 阅读 · 0 评论 -
Java—简单选择排序
简单选择排序基本思想:第一趟,从n个元素中找出关键字最小的元素与第一个元素交换;第二趟,在从第二个元素开始的n-1个元素中在选出关键字最小的元素与第二个元素交换;如此,第k趟,则从第k个元素开始的n-k+1个元素中选出关键字最小的元素与第k个元素交换,直到整个序列按关键字有序。 public static void test2(int[] r) { for(int i = 1;...原创 2019-01-07 17:01:44 · 153 阅读 · 0 评论 -
Java——数据结构之单链表操作
链表是一系列的存储数据元素的单元通过指针串接起来形成的,因此每个单元至少有两个域,一个域用于数据元素的存储,另一个域指向其他单元的指针。这里具有一个数据域和多个指针域的存储单元通常称为结点。 上图是一种最简单的结点结构,它是构成单链表的基本结点结构。在结点中数据域用来存储数据元素,指针域用于指向下一个结点的引用。 我们上面一直在说指针,有的人可能会有疑问在java里面不是没有指针吗?其实在jav...原创 2019-01-14 20:28:58 · 182 阅读 · 0 评论 -
Java—简单二分查找
在介绍二分查找法之前,我们现在简述一个例子;随机有1~100个数字,并且是有序的,让你猜测其中一个数字,对于猜测的数字我们会有三种答案,分别是:大了,小了,相等。假如我们用一种最基本的for循环遍历的方法进行一一比较的话,假如这个数字在开始的位置还好,如果这个数字在最后的位置呢?那么就要用到这个二分查找的方法,举个栗子,假如我们要查找51这个数字,用普通的遍历进行查找的话,我们需要第51次才能找到...原创 2019-01-09 22:22:58 · 138 阅读 · 0 评论 -
Java——快速排序
快速排序:该算法在数组中选择一个主元将数组一分为二。使得第一部分中的元素都小于或等于主元,第二部分中的元素都大于主元。然后对第一部分递归应用快速排序算法,对第二部分递归的应用快速排序算法。不过快速排序每次划分都将主元放在了恰当的位置,因为主元的选择直接影响了算法的性能。在理想的情况下,应该选择能平均划分两部分的主元。 这张图是算法的流程,和归并算法有些相似,都是进行了递归操作。每一次都对已经分好的...原创 2019-01-22 21:14:21 · 190 阅读 · 0 评论