(十七)java冒泡排序和compareto
java中的排序有:冒泡排序、快速排序、选择排序、插入排序和希尔排序,还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。
冒泡排序法:利用双重for循环,重复走访要排序的数列,两两比较大小,位置不对就交换位置直到无从可换,这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,就像冒泡一样。
冒泡排序的实现:比较相邻的元素,如果前边比后边大则交换;对每一对相邻元素做相同的工作,从第一对到最后一对,这样最后的元素应该是最大的一个。例如:
package demo;
public class Test2 {
public static void main(String[] args) {
int [] num={4,8,2,60,23,55};
System.out.println("排序前的数组是:");
//遍历当前数组元素
for(int x:num){
System.out.print(x+",");
}
System.out.println();
//冒泡排序
int a;
for(int i=0;i<num.length-1;i++){
for(int j=i+1;j<num.length;j++){
if(num[i]>num[j]){
a=num[i];
num[i]=num[j];
num[j]=a;
}
}
}
System.out.println("排序后的数组是:");
//遍历排序后数组元素
for(int y:num){
System.out.print(y+",");
}
}
}
在java中如果要对两个对象进行排序,需要使用到compareTo方法,compareTo是java.lang.comparable接口中的方法,当需要对某个类的对象进行排序时,需要该类实现comparable接口,必须重写comparableTo方法。
重写compareTo方法,一般要用到instanceOf判断是不是能够转换的类型。instanceOf的前边通常是一个引用类型的变量,instanceOf后便通常是一个类或者接口,来判断前边的对象是否是后边的类或者子类、实现类的实例。instanceof判断以后,经常要用到强制类型转换。
注意,instanceof中的o是小写的,不是大写。
(十七)java冒泡排序和compareto的更多相关文章
- JAVA冒泡排序/JAVA冒泡排序再找出给定数据中的最大值最小值/JAVA数组排序
//数组中排序 int in[] = {1,6,5,8,9}; Arrays.sort(in); for(int i=0;i<in.length;i++){ Sys ...
- Android 开发笔记 “java.util.Calendar.compareTo()”
java.util.Calendar.compareTo() 方法比较Calendar对象和anotherCalendar对象之间的时间值(毫秒偏移量). 声明 以下是java.util.Calen ...
- Java进阶(三十七)java 自动装箱与拆箱
Java进阶(三十七)java 自动装箱与拆箱 前言 这个是jdk1.5以后才引入的新的内容.java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为 ...
- java中的compareto方法以及LIst列表排序的详细介绍【转】
java中的compareto方法的详细介绍 javacompareTo java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值,看下面一组代码 String a=&quo ...
- Java中“==”、“compareTo()”和“equals()”的区别
在比较两个对象或者数据大小的时候,经常会用到==.compareTo()和equals(),尤其是在接入了Comparable接口后重写compareTo方法等场景,所以我们来理一下这三个的区别. 1 ...
- java中的compareto方法的详细介绍
java中的compareto方法的详细介绍 Java Comparator接口实例讲解(抽象方法.常用静态/默认方法) 一.java中的compareto方法 1.返回参与比较的前后两个字符串的as ...
- Java冒泡排序,Java对象冒泡排序
今天呆公司特别无聊,百度了一下Java机试题,看到一个冒泡排序. 粘上我全部的代码: 实体类: package accp.com.internet;/** * 人物类 * @author xuxiao ...
- Java冒泡排序法升级版
/* * 冒泡排序之升级版,可比较整型数组.小数型数组 * * */ public static <T extends Comparable<T>> void Bubb ...
- java冒泡排序和快速排序
本ID技术干货公众号"java工会",欢迎关注指正. 一.冒泡排序 1.算法介绍 设排序表长为n,从后向前或者从前向后两两比较相邻元素的值,如果两者的相对次序不对(A[i-1] & ...
随机推荐
- Sonar 常用代码规则整理(一)
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 摘要:公司部署了一套sonar,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分 ...
- 高通HAL层之Sensor HAL
高通的HAL层其实分为两种,一种是直接从kernel这边报数据上来的,由sensor HAL层来监听,另一种是走ADSP的模式,HAL层是通过qmi的形式进行监听的: 走ADSP架构的可以看下面的博客 ...
- rsync推送和拉取
rsync格式: # 拷贝本地文件.当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式.如:rsync -a /data /backup rsync [OP ...
- 二分图匹配 洛谷 [P3386]
最为经典的匈牙利算法 匈牙利算法应用了增广路的性质,实际上就是通过搜索可行的增广路,每搜到一条,匹配数++ 还可以应用配对的方法去理解,此算法的时间复杂度 (V*E),比较慢,但是实现较为简单. df ...
- BZOJ 1042: [HAOI2008]硬币购物 [容斥原理]
1042: [HAOI2008]硬币购物 题意:4种硬币.面值分别为c1,c2,c3,c4.1000次询问每种硬币di个,凑出\(s\le 10^5\)的方案数 完全背包方案数? 询问太多了 看了题解 ...
- 对.Net Core结合Docker和Jexus的实践
本文基于上次尝试之后的进一步尝试,加入Docker容器.编写Dockerfile,并且jexus结合Docker的使用,总结下自己的个人感想. 一.环境介绍 当前的场景有两种方式将Demo实现运行,一 ...
- XGoServer 一个基础性、模块完整且安全可靠的服务端框架
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- s5pv210 的启动
1.开发板已启动从0x0获取数据(内部64k的硬盘,里面含有三星固化的BL0段代码),将其读到a8软核中,进行运算,主要用于初始化时钟,96k的内部IRAM.并负责 指定启动设备(通常为外部硬盘),从 ...
- 异步请求时有时会让js不起作用,那么重新加载js
function reloadSmartMenu() { var jsElem = document.createElement('script'); jsElem.src= path+'/syste ...
- Sql server 卸载方法
sql server不正确卸载时,重新安装会失败,会提示各种错误:如数据库实例已存在等... 下面是我摸索总结出来的卸载方法,以及重装失败后的处理方法: 卸载方法: 注意:SQL Server 200 ...