Java实现的各种排序算法(插入排序、选择排序算法、冒泡排序算法)
作者:mrr 发布时间:2023-06-29 11:25:28
标签:java,排序算法,冒泡排序算法,插入排序,选择排序算法
一、插入排序算法实现java版本
public static int[] insert_sort(int[] a)
{
for (int i = 0; i < a.length; i++)
{
for(int j=i+1;j>0&&j<a.length;j--)
{
if(a[j]<a[j-1])
{
int tmp = a[j]; //这样定义初始化逻辑上是可以的,j变量,每次tmp的值变化的
a[j] = a[j-1];
a[j-1] = tmp;
}
}
}
return a; //这里设计成不返回也行, 原数组也已经修改,已排好序
}
二、选择排序算法实现java版本
public static int[] select_sort(int[] a)
{
for (int i = 0; i < a.length; i++)
{
int min_pos = i;
for(int j=i+1;j<a.length;j++)
{
if(a[j] < a[min_pos])
{
min_pos = j;
}
}
int tmp = a[i]; // swap 操作
a[i] = a[min_pos];
a[min_pos] = tmp;
}
return a;
}
三、冒泡排序算法java实现
普通冒泡
public static int[] bubble_sort(int[] a)
{
for (int i = 0; i < a.length; i++)
{
//每一趟过后a[i]是第i小
for(int j = a.length-1;j>i;j--)//后续有j-1操作 注意j>i
{
if(a[j] < a[j-1])
{
int tmp = a[j]; // swap 操作
a[j] = a[j-1];
a[j-1] = tmp;
}
}
}
return a;
}
改进冒泡排序,提前终结
public static int[] bubble_sort_flag(int[] a)
{
boolean isChange = true;
for (int i = 0; i < a.length && isChange; i++)
{
isChange = false;
for(int j = a.length-1;j>i;j--)//后续有j-1操作 注意j>i
{
if(a[j] < a[j-1])
{
int tmp = a[j]; // swap 操作
a[j] = a[j-1];
a[j-1] = tmp;
isChange = true;
}
}
}
return a;
}
以上所述是小编给大家介绍的Java实现的各种排序算法(插入排序、选择排序算法、冒泡排序算法)网站的支持!
0
投稿
猜你喜欢
- 一 概述GC(Garbage Collection),在程序运行过程中内存空间是有限的,为了更好的的使用有限的内存空间,GC会将不再使用的对
- C#调用新浪微博APIWebRequest wq = WebRequest.Create(this.address);HttpWebRequ
- 一、什么是Memcached?Memcached是danga.com开发的分布式内存对象缓存系统,所谓分布式,意味着它不是本地的,而是基于网
- 1. 绪论当我们编写了自己的C#程序,有程序自定义的文件类型时,通常希望它满足以下需求:双击自定义文件打开自定义程序 自定义文件有着自己的图
- mybatis 映射文件中,if标签判断字符串相等,两种方式:因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串sex变量
- 一、创建资源文件可以将字符串、图像或对象数据等资源包含在资源文件中,方便应用程序使用。创建资源文件的方法:1、手动或使用IDE工具自动生成X
- springboot整合redis主从sentinel一主二从三sentinel配置1、master:127.0.0.1:63792、sla
- Java操作redis设置第二天凌晨过期场景在做查询数据的时候,遇到了需要设置数据在redis中第二天过期的问题,但是redis又没有对应的
- 前言这两天面试了一个物联网公司高级研发,面试题是下面这样子公司领导,部门主管,小组组长,组成员4级,假如有个 疫情预警,先通知组人员(对个人
- 理解事务之前,先讲一个你日常生活中最常干的事:取钱。比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱
- 一、关于堆JDK1.8中的PriortyQueue(优先级队列)底层使用了堆的数据结构,而堆实际就是在完全二叉树的基础之上进行了一些元素的调
- 简介Log4J 是 Apache 的一个开源项目(官网 http://jakarta.apache.org/log4j)
- 1、HashMap HashMap继承抽象类AbstractMap,实现接口Map、Cloneable, Serializable接口。Ha
- 我们知道,(1)如果是整百的年份,能被400整除的,是闰年;(2)如果不是整百的年份,能被4整除的,也是闰年。每400年,有97个闰年。鉴于
- 深入理解IOC思想spring本质就在于将对象全部交由给spring容器创建和管理,由容器控制对象的整个生命周期、核心就是IOC控制反转和A
- 本文初步探讨了C#缓存的原理及应用,并以实例加以分析总结,这些对C#初学者来说是很有必要熟练掌握的内容。具体如下:一、概述:缓存应用目的:缓
- java解决动态配置字段需求是否在开发中遇到有像下图一样管理员配置多个字段让用户填写的需求我的实现方式是通过数据库存储动态json的显示实现
- 场景做一个消息中心,专门负责发送消息。消息分为几种渠道,包括手机通知(Push)、短信(SMS)、邮件(Email),Websocket等渠
- 前几天,公司数据库出现了两条相同的数据,而且时间相同(毫秒也相同)。排查原因,发现是网络波动造成了重复提交。由于网络波动而重复提交的例子也比
- 该方法把该字符串转换成一个新的字符数组。 String str="abcdefg"; char a[]; a=str.t