简述

本文使用java实现了一些常用的算法,包括:冒泡排序 ,分治法快速排序, 选择排序 ,插入排序 ,生成斐波那契数列,滑动窗口查找 ,二分查找有序数组 ,希尔排序,并且会持续更新。代码已上传至github和gitee上,本文为原创文章,引用请注明出处。

  • 冒泡排序

    public static void bubbleSort(Integer[] arr){System.out.println("Before sorted: "+ Arrays.toString(arr));int temp;for(int i=0;i<arr.length;i++){for(int j=0;j<arr.length-i-1;j++){if(arr[j]>arr[j+1]){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}System.out.println("After sorted: "+ Arrays.toString(arr));}
  • 分治法快速排序

    public static void quickSort(Integer[] arr, int low, int high){if(low>high)return;//选中一个基准,按基准分割大小int pivot = arr[high];int temp = 0;int pivotIndex = low;for(int i=low;i<high;i++){if(arr[i]<pivot){temp=arr[pivotIndex];arr[pivotIndex]=arr[i];arr[i]=temp;pivotIndex++;}}arr[high]=arr[pivotIndex];arr[pivotIndex] = pivot;quickSort(arr,0,pivotIndex-1);quickSort(arr,pivotIndex+1,high);}
  • 选择排序,选出每个位置上属于该位置的数字

    public static void selectionSort(Integer[] arr){int temp = 0;for(int i=0;i<arr.length;i++){for(int j=i;j<arr.length;j++){if(arr[i]>arr[j]){temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}}
  • 插入排序,每次插入一个数字进行排序

    public static void insertSort(Integer[] arr){int temp = 0;for(int i=1;i<arr.length;i++){for(int j=0;j<i;j++){if(arr[j]>arr[i]){temp = arr[j];arr[j] = arr[i];arr[i] = temp;}}}}
  • 生成斐波那契数列

    public static int[] generateFiboArr(int length){int[] arr = new int[length];for(int i=0;i<length;i++){arr[i] = fibo(i);}return arr;}public static int fibo(int count){if(count<=1)return count;return fibo(count-1)+fibo(count-2);}
  • 滑动窗口查找

    public static boolean shiftSearch(@NotNull String str, @NotNull String needFind){int start = 0;int end=needFind.length();String temp = null;while(end<str.length()){temp = str.substring(start,end);if(temp.equals(needFind)){return true;}start++;end++;}return false;}
  • 二分查找有序数组

    public static boolean binarySearch(Integer[] arr, int needFind){int start = 0;int end = arr.length-1;int index = end/2;while(index>=1 && index<=(arr.length-1)){if(arr[index] == needFind){return true;}else if(arr[index] < needFind){start = index;}else{end = index;}index = (start+end)/2;}return false;}
  • 希尔排序,分辨率越低数组越有序

    public static void shellSort(double[] arr, int resolution){int length = arr.length;double temp = 0d;while(resolution>0){for(int i=resolution;i<length;i++){for(int j=i;j>=resolution;j-=resolution){temp=arr[j];if(arr[j-resolution]>temp){arr[j] = arr[j-resolution];arr[j-resolution] = temp;}}}}}

如何使用java实现一些常用的算法相关推荐

  1. java开发中常用的算法_总结一下项目开发过程中常用的到的一些加密算法。

    一般常用的有: MD5.SHA算法:代码如下 Java代码 /* * Copyright (c) 2008 * All rights reserved. */ packagecn.com.jody.w ...

  2. 各种Java实现的常用排序算法

    文章目录 冒泡排序 堆排序 - heap sort 插入排序 - insert sort 归并排序 - merge sort 快速排序 - quick sort 另一种快速排序 选择排序 希尔排序 冒 ...

  3. java实现apriori算法_七大经典、常用排序算法的原理、Java 实现以及算法分析

    0. 前言 大家好,我是多选参数的程序员,一个正再 neng 操作系统.学数据结构和算法以及 Java 的硬核菜鸡.数据结构和算法是我准备新开的坑,主要是因为自己再这块确实很弱,需要大补(残废了一般) ...

  4. java 性能 排序_Java常用排序算法及性能测试集合

    package algorithm.sort; import java.lang.reflect.Method; import java.util.Arrays; import java.util.D ...

  5. [转载] java实现四种常用排序算法

    参考链接: 用Java排序 四种常用排序算法 ##注:从小到大排 ##冒泡排序## 特点:效率低,实现简单 思想:每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有 ...

  6. Java折半二叉树,成都汇智动力-Java实现常用排序算法

    原标题:成都汇智动力-Java实现常用排序算法 排序算法介绍 1. 基本概念 稳定性: 待排序的数列中,若两个元素的值相等 R1 = R2 ,在排序结束之后,元素之间的相对位置没有发生变化,则称排序算 ...

  7. 常用排序算法-----------JAVA实现

    #常用排序算法-插入排序,选择排序,交换排序,归并排序,基数排序 ###排序算法可归类为以下几类: 插入排序: 直接插入排序(DirectInsertSort): 二分法排序(BinarySort): ...

  8. 我们一起来排序——使用Java语言优雅地实现常用排序算法

    破阵子·春景 燕子来时新社,梨花落后清明. 池上碧苔三四点,叶底黄鹂一两声.日长飞絮轻. 巧笑同桌伙伴,上学径里逢迎. 疑怪昨宵春梦好,元是今朝Offer拿.笑从双脸生. 排序算法--最基础的算法,互 ...

  9. Java的GC机制及算法

    转载自   Java的GC机制及算法 GC的阶段  对每个对象而言,垃圾回收分为两个阶段:finalization和reclamation. finalization: 指运行这个对象的finaliz ...

  10. Visual C# 诠释常用排序算法

    Visual C# 诠释常用排序算法 前段时间因为项目需要,做了个用来对数组排序的类,顺便把以前学过的几种排序算法用C#实现一下.用C#的一些机制来诠释了一下算法的是实现.在阅读本之前,需要一些对C# ...

最新文章

  1. JDK源码研究Jstack,JMap,threaddump,dumpheap的原理
  2. 1088 Rational Arithmetic
  3. 手动配置linux(centos)的IP地址
  4. 荣获计算机视觉“奥斯卡”奖提名的年轻人!康奈尔大四学生林之秋的科研之道...
  5. 算法之最近最少使用LRU
  6. Android之自定义控件显示点赞用户并通过用户名称进入该用户主页的功能
  7. A - 数据结构实验之排序一:一趟快排
  8. spark从hbase读数据到存入hbase数据两种版本写法
  9. 请问华为三层交换机里面的那个从IP是个什么意思? -
  10. 亚马逊如何变成 SOA(面向服务的架构)?
  11. postmapping注解参数说明_从零搭建后端框架:优雅的参数校验Validator
  12. server接收dtu透传代码_Swoole学习笔记二:初探server与client(Client同步)
  13. python多线程url采集器 + github_python实现多线程采集的2个代码例子
  14. angularjs ng-include
  15. html表单提交带后台,form表单提交数据给后台
  16. Qt教程,Qt6.3,Qt6.2,Qt6,Q,v6.3.1入门,Qt编程入门
  17. HDU5144 NPY and shot BestCoder Round #22 1003
  18. Java 使用嵌套 for 循环打印皇冠
  19. 怎样在线制作gif表情包?教你快速制作gif表情包
  20. python5.2、输出格式控制 - 摄氏-华氏温度换算

热门文章

  1. java http proxy server
  2. 百度云下载插件,创建链接,脚本管理,百度网盘快速下载
  3. android webview 无法加载插件,webView 测试问题,无法检测到 webView 控件
  4. 常用电子元器件检测方法与经验
  5. Python编程实践之Choose
  6. 《21天学通Java(第6版)》—— 1.2 面向对象编程
  7. Java开发 明华usbkey_v3 明华二次开发包,usbkey 内有很多demo程序。 USB develop 238万源代码下载- www.pudn.com...
  8. wsdl2java 工具_apache CXF wsdl2java工具的使用
  9. VMware Workstation 14 Pro永久激活密钥
  10. Prescan基础知识总结