![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 76
凡心所致
这个作者很懒,什么都没留下…
展开
-
数组二分查找
二分查找(折半查找),针对有序排序,就是先查找最中间的数据,根据结果淘汰另一半。本例是针对数组升序排列的情况写的方法。新手上路。public class BinarySearch {/*** 二分查找,返回查找数字的索引,若未找到,则返回-1* @param arr 数组* @param num 需要查找的数字* @return*/public原创 2017-08-11 17:14:04 · 325 阅读 · 0 评论 -
冒泡排序
冒泡排序算法如下:1、比较相邻的元素,如果第一个比第二个大,则交换两个。2、对每一个相邻元素做同样的工作,从开始第一对到结尾的最后一对。最后的元素是最大数3、针对所有的元素重复以上步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,知道没有任何一对数字需要比较。此以数组为例。/** *冒泡排序 */public class ArrayBub {原创 2017-08-12 20:44:57 · 174 阅读 · 0 评论 -
选择排序
选择排序(Selection sort),它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。相比于冒泡排序,比较次数并没有减少,但是交换次数大大减少,大O表示法为O(N)。代码如下:先写个工具类public class SelectArray { private long[] a; privat原创 2017-08-15 20:28:21 · 181 阅读 · 0 评论 -
插入排序
插入排序,我理解的原理就是从一个数组中的第二位开始,也就是下标为1的元素存入到一个临时变量中,然后与之前的元素做对比,如果临时变量大,则不做交换,如果临时变量下,则将对比元素后移,将临时变量存入当前位置,继续对比直到前面没有元素可对比。新手上路代码如下:工具类public class ArrayIns { private long[] a; private原创 2017-08-15 23:21:13 · 178 阅读 · 0 评论 -
单链表删除所有重复元素
直接上代码:package arraystolist;import java.util.Arrays;import java.util.List;/** * 删除链表中所有指定的元素 * 如: 1->2->3->2->5->null 删除2 * 删除后 1->3->5->null * * @author hanxiaofan...原创 2018-07-08 11:30:43 · 1418 阅读 · 0 评论 -
二分查找
二分查找:package arraystolist;/** * 二分查找 * * @author hanxiaofan * */public class BinarySearch { /** * * @param arr * 待查询数组 * @param k * 查询数字 * @return */ p...原创 2018-07-08 12:56:29 · 179 阅读 · 0 评论 -
递归实现将list转单向链表,再将单向链表反转
Node类: package arraystolist;/** * 节点类 * @author hanxiaofan * */public class Node { private final int value; //数据一旦放入就不可更改 private Node next; public Node(int value) { this.value = value;...原创 2018-07-07 12:38:53 · 871 阅读 · 0 评论 -
java递归 指定集合中元素的组合
打印集合中元素的组合package arraystolist;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * 选出所有组合 * @author hanxiaofan * */public class Combinations { /** * @param s...原创 2018-07-07 15:08:18 · 1282 阅读 · 0 评论