本文主要介绍一些常用的算法:

冒泡排序:两两相互之间进行比较,如果符合条件就相互兑换。    

     //冒泡排序升序
public static int[] bubblingSortAsc(int[] array){
if (array.length==0)
return array;
for (int i=0;i<array.length;i++){
for (int j=i+1;j<array.length;j++){
int temp;
if (array[i]>array[j]){
temp = array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
return array;
}

运行结果:

 

简单插入排序:例如,将数组进行升序,遍历数组,取出i+1,和(i+1)之前的每一项进行对比,直到(i+1)的数据大于比较的数据。

     //简单插入排序
public static int[] insertSortAsc(int[] array){
if (array.length==0)
return array;
int currentValue; for (int i=0;i<array.length-1;i++){
int pre = i;
currentValue = array[pre+1]; //取出当前遍历的后一位 //把当前位置之前的每一项都进行对比
while (pre>=0 && currentValue<array[pre]){
array[pre+1] = array[pre];
pre--;
} array[pre+1] = currentValue; }
return array;
}

运行结果:

归并排序:把一个数组一直拆分,直到符合数组定义的数据。然后比较,比较完之后再和其他的进行比较,然后在一层一层的比较。

  

     public static int[] sort(int[] array){
final int len = 5;//默认最小的数组长度为5
if (array.length<=len) {
return insertSortAsc(array);//对数组进行正序排序
}else {
int mid = array.length / 2;
int[] left = Arrays.copyOfRange(array, 0, mid);
int[] right = Arrays.copyOfRange(array, mid, array.length);
return compare(sort(left),sort(right));
}
} public static int[] compare(int[] left,int[] right){
int[] result = new int[left.length+right.length];
for (int i=0,l=0,r=0;i<result.length;i++){
if (l>=left.length)//当left集合取不到数据的时候,直接从right集合拿数据
result[i] = right[r++];
else if (r>=right.length) //当right集合取不到数据的时候,直接从left集合取数据
result[i] = left[l++];
else if (left[l]>right[r]) //当left集合的数据大于right集合的数据,去right集合的数据
result[i] = right[r++];
else //都不符合就直接取right集合数据
result[i] = left[l++];
}
return result;
}

运行结果,自己操作就可以了

以上便是个人对一些简单算法的见解。

java一些基本算法的更多相关文章

  1. Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

    Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...

  2. Java字符串排列算法

    Java字符串排列算法 题目:现有ABCDE 5个球 构成的排列组合 可重复抽取 最多取到16个 共有多少种组合方式? 比如:取1个球可以构成的组合有 A B C D E 共5种,取2个球可以构成的组 ...

  3. Java 常用排序算法/程序员必须掌握的 8大排序算法

    Java 常用排序算法/程序员必须掌握的 8大排序算法 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配 ...

  4. Java实现KMP算法

    /**  * Java实现KMP算法  *   * 思想:每当一趟匹配过程中出现字符比较不等,不需要回溯i指针,   * 而是利用已经得到的“部分匹配”的结果将模式向右“滑动”尽可能远   * 的一段 ...

  5. java结构与算法之选择排序

    一 .java结构与算法之选择排序(冒择路兮快归堆) 什么事选择排序:从一组无序数据中选择出中小的的值,将该值与无序区的最左边的的值进行交换. 简单的解释:假设有这样一组数据 12,4,23,5,找到 ...

  6. java:高速排序算法与冒泡排序算法

     Java:高速排序算法与冒泡算法 首先看下,冒泡排序算法与高速排序算法的效率: 例如以下的是main方法: /**   *  * @Description:  * @author:cuiyaon ...

  7. Java数据结构和算法

    首先,本人自学java,但是只学习了java的基础知识,所以想接下来学习一下数据结构和算法,但是找了很多教材,大部分写的好的都是用c语言实现的,虽然知道数据结构和算法,跟什么语言实现的没有关系,但是我 ...

  8. 【Java数据结构学习笔记之二】Java数据结构与算法之栈(Stack)实现

      本篇是java数据结构与算法的第2篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 顺序栈的设计与实现 链式栈的设计与实现 栈的应用 栈的抽象数据类型   栈是 ...

  9. Java数据结构和算法(一)——简介

    本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子. 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱.一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数 ...

  10. Java数据结构和算法(六)——前缀、中缀、后缀表达式

    前面我们介绍了三种数据结构,第一种数组主要用作数据存储,但是后面的两种栈和队列我们说主要作为程序功能实现的辅助工具,其中在介绍栈时我们知道栈可以用来做单词逆序,匹配关键字符等等,那它还有别的什么功能吗 ...

随机推荐

  1. Eclipse下代码字体背景变红/变绿/变黄原因

    如下图所示:不知道怎么,在eclipse IDE手抖按了啥,就成这样了. 后来在stackoverflow提问后,找到了原因.eclipse 有测试代码覆盖率的功能,也就是执行Run——>Cov ...

  2. python 调用java脚本的加密(没试过,先记录在此)

    http://lemfix.com/topics/344 前言 自动化测试应用越来越多了,尤其是接口自动化测试. 在接口测试数据传递方面,很多公司都会选择对请求数据进行加密处理. 而目前为主,大部分公 ...

  3. 123457123456#0#-----com.tym.BaoBaoiMiYu12--前拼后广--趣味谜语tym

    com.tym.BaoBaoiMiYu12--前拼后广--趣味谜语tym

  4. AnyCAD三维控件(转)

    在WinForm中可以方便的集成AnyCAD.Net三维控件,只需要以下几部即可完成. 一.添加DLL程序集 AnyCAD.Foundation.Net.dll AnyCAD.Presentation ...

  5. LeetCode_389. Find the Difference

    389. Find the Difference Easy Given two strings s and t which consist of only lowercase letters. Str ...

  6. 基于ADO的远程Oracle连接

    最近在一个通过MFC做一个界面,通过这个界面可以对布置在另一台服务器上的数据库MySQL.SQl Server.Oracle进行增删创建表的操作.其中我通过ADO很快就完成了对MySQL和SQL Se ...

  7. FastDFS配置详解之Storage配置

    1 基本配置disabled #func:该配置文件是否生效#valu:## true:无效## false:生效disabled=false group_name#func:本storage ser ...

  8. ACS712电流传感器应用

    1. 原理图 其中第7脚输出的是电压值,那么电压值和测量的电流什么关系?看下图,有3个量程,我用的是20A电流的,100mv电压对应1A电流 看下图,不同的温度会有影响,不过区别不大 最后计算的公式是 ...

  9. Linux下go环境搭建

    一:先从https://golang.google.cn/dl/下载,我这边下载的是go1.13.3.linux-amd64.tar.gz: 二:将压缩包解压后得到go目录,将go目录移动到/usr/ ...

  10. input 标签鼠标放入输入框补全提示

    JSP: <input type="text" placeholder="eventDesc" value="" id="e ...