1:冒泡排序:

相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。

public static void bubbleSort(int[] arr) {

for(int x=0; x

for(int y=0; y

if(arr[y]>arr[y+1]) {

int temp = arr[y];

arr[y] = arr[y+1];

arr[y+1] = temp;

} } } }

2:简单选择排序:

把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。同理,其他的元素就可以排好。

public static void selectSort(int[] arr) {

for(int x=0; x

for(int y=x+1;y

if(arr[y]

int temp=arr[x];

arr[x]=arr[y];

arr[y]=temp;

}}}}

3:插入排序:

效果图:

它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

代码:

4:快速排序

快速排序的原理就是每次设置一个基准点,这个基准点可以是要排序的一趴数之间的任何数,然后将比基准点小的数放在基准点左边,比基准点大的数放在基准点右边

代码:

5:二分排序:

针对数组有序的情况(千万不要先排序,在查找)

public static int binarySearch(int[] arr,int value) {

int min = 0;

int max = arr.length-1;

int mid = (min+max)/2;

while(arr[mid] != value) {

if(arr[mid] > value) {

max = mid - 1;

}else if(arr[mid] < value) {

min = mid + 1;

}

if(min > max) {

return -1;

}

mid = (min+max)/2;

}

return mid;

}

java 常用算法_Java基础之常用算法相关推荐

  1. java 加密工具包_Java加密和解密算法调用工具包

    软件架构及说明 1.本工具包基于纯java编写而成: 2.部分算法密钥对基于bcprov-jdk16的调用生成. 3.部分加密与解密算法来自网上公开的源码,并在此基础上进行整理和优化而来: 4.本加密 ...

  2. 算法的基础概念,插入算法和分治算法分析

    算法导论基础: 1.关于一些概念 算法:非形式的说,算法就是任何良定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出. 算法就是把输入转换成输出的计算步骤的一个序列. 可以 ...

  3. 简单java数组程序_java(数组及常用简单算法 )

    数组 数组:数组是存储同一种数据类型数据的集合容器. 数组的定义格式: 数据类型[]  变量名  =  new  数据类型[长度]; 数组的好处:对分配到数组对象中每一个数据都分配一个编号(索引值.角 ...

  4. java基础之算法_java基础算法

    package com.sxwl; import org.springframework.boot.SpringApplication; import org.springframework.boot ...

  5. java gc回收算法_Java基础之GC垃圾回收的历史

    [TOC] 垃圾回收思路: - 发现无用信息对象 - 回收被无用对象占用的内存空间,使该空间可被程序再次使用. > 关键词联想:(**类型**)堆和非堆,(**人类成长**)伊甸园-幸存者乐园- ...

  6. java基础之算法_java基础之几种常见的排序算法

    一,冒泡排序 1.原理: 从数组的第一个位置开始两两比较array[index]和array[index+1],如果array[index]大于array[index+1]则交换array[index ...

  7. Java基础类冒泡排序_Java基础 -- 冒泡排序算法(带详细注释)

    冒泡排序的要点: 1.多轮排序,每轮排序中选出最大的元素放在最顶端,并且下次排序不再使用该元素; 2. 使用双for循环,外层for循环控制要排序的次数(轮数), 内层for循环控制当前要排序的元素并 ...

  8. java泛型常用特点_Java基础系列(3)Java泛型知多少?

    不积跬步,无以至千里:不积小流,无以成江海 什么是泛型?为什么要使用泛型? 泛型,即"参数化类型".一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参.那么参数化类 ...

  9. java程序员基础算法_java基础算法

    冒泡排序 图解 编码实现 public class Sort { public static void main(String[] args) { //通过冒泡排序给当前的数字进行排序(升序) int ...

最新文章

  1. 写了一个PPT,用于公司内部培训
  2. 推荐爱奇艺开源的高性能网络安全监控引擎!
  3. 揭秘百度核心技术:53位专家纯干货分享
  4. 用自定义IHttpModule实现URL重写
  5. Annotataion
  6. 数据分析系列:完善统计图(matplotlib)
  7. 项目优化之:GPU编程
  8. 一张网页带你了解中秋节的前世今生
  9. react学习(51)--避免死循环
  10. 在Windows平台下使用Gitblit搭建Git服务器图文解说
  11. 跨进程实现在Tree中快速定位节点
  12. yum方式安装android_Android-x86尝鲜续 系统详细安装教程
  13. springcloud-provider-consumer-register
  14. Hyperledger Fabric教程(10)-- peer命令-链码chaincode
  15. python读HDF数据
  16. 多方位玩转“地平线新发布AIoT开发板——旭日X3派(Sunrise x3 Pi)” 插电!开机!轻松秒杀!
  17. 1162开放英语4 (2)
  18. VisualStudio App.Config自动配置
  19. nssa和stub_stub和nssa华为nssa和stub
  20. 互联网日报 | 华为再次重申不造整车;今日头条推出“行家计划”;京东宣布构建数智化社会供应链...

热门文章

  1. python时间加一个月减一个月_python – 从pandas中的datetime列减去一年
  2. python中reshape_python numpy reshape用法及代码示例
  3. jmeter使用if控制器_Jmeter 常见逻辑控制器详解
  4. P7 P8:训练神经网络
  5. 调试远程服务器上的代码时报错:调试设置中的Python路径无效
  6. leetcode185 Department Top Three Salaries
  7. java中文文档官方下载
  8. Eclipse修改相同内容的高亮显示(pydev编辑python)
  9. JS小项目 ----- 可视化冒泡排序
  10. Python:assert基本用法