Java数组排序

        今天,巩固教大家数组排序方法,我将介绍以下这几种方式:快速排序,冒泡排序,选择排序。
1、快速排序
这就是各位学Java的福利了,Java提供sort()方法,咱们只要调用就行了。
代码如下:
import java.util.Arrays;           //引入包
public class 排序 {

public static void main(String[] args) {
int [] a={10,9,8,7,6,5,4,3,2,1};     //建立一维数组
Arrays.sort(a);       //进行排序
for(int i=0;i
System.out.print(a[i]+"   ");
}

}

}

这段代码我相信应该很好理解,我在这就不多说了。



2、冒泡排序
这是一个很常用的方法,它的运行原理是:把每两个数放在一起比较,并把小的数放在前面。
public class 排序 {

public static void main(String[] args) {
int [] a={10,9,8,7,6,5,4,3,2,1};     //建立一维数组
//排序开始
for(int i=0;i
//判断后一个数是否大于前一个数
if(a[i+1]
//将前一个数的值给q
int q=a[i];
//将后一个数的值给前一个数
a[i]=a[i+1];
//将q(即前一个数的值)给后一个数
a[i+1]=q;
}
}
for(int i=0;i
System.out.print(a[i]+"   ");
}

}

}
如果你的代码是这样的,那很抱歉地告诉你,这是错的!
它的结果为:9   8   7   6   5   4   3   2   1   10    
思考一下为什么?
其实很简单,我们的原数组是:10,9,8,7,6,5,4,3,2,1
它先将10与9比较,于是得到:9,10,8,7,6,5,4,3,2,1
再将10与8比较:9,8,10,7,6,5,4,3,2,1
于是最后:9,8,7,6,5,4,3,2,1,10
那我们的怎么做呢?
正确代码:
public class 排序 {

public static void main(String[] args) {
int [] a={10,9,8,7,6,5,4,3,2,1};     //建立一维数组
//排序开始
for(int j=0;j
for(int i=0;i
//判断后一个数是否大于前一个数
if(a[i+1]
//将前一个数的值给q
int q=a[i];
//将后一个数的值给前一个数
a[i]=a[i+1];
//将q(即前一个数的值)给后一个数
a[i+1]=q;
}
}
}
for(int i=0;i
System.out.print(a[i]+"   ");
}

}

}
我又在外面套一个循环,让它运行十次,这样就可以了。它会把前面大的数一个一个往后移,最后完成!


3、选择排序
所谓选择排序,就是依次将每位上的数与后面的所有数做对比,并把比它小的数的下标记录下来,最后替换。
代码如下:
public class 数组排序 {

public static void main(String[] args) {
//初始化一维数组
int [] a={10,9,8,7,6,5,4,3,2,1};
//开始排序
//这个for是用来选择要与后面数比较的数
for(int j=0;j
//将当前比较数的下标给z
int z=j;
    //开始比较
for(int i=j+1;i
        //判断当前比较数是否较小
if(a[i]
//更换下标
z=i;
}
}
//判断z的值是否更换
if(z!=j){
//替换数值
int q=a[j];
a[j]=a[z];
a[z]=q;
}
}
//遍历
for(int i=0;i
System.out.print(a[i]+"   ");
}

}

}



    好了,这三种排序方法我都讲完了,如果有什么不理解的地方,可以加我的Q:1979661141

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值