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是小写的,不是大写。
冒泡排序法:利用双重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是小写的,不是大写。