0
点赞
收藏
分享

微信扫一扫

Java数组排序


      今天,巩固教大家数组排序方法,我将介绍以下这几种方式:快速排序,冒泡排序,选择排序。

1、快速排序



这就是各位学Java的福利了,Java提供sort()方法,咱们只要调用就行了。



代码如下:



        //引入包



public class 排序 {





public static void main(String[] args) {



  //建立一维数组



    //进行排序



for(int i=0;i






}





}





}





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









2、冒泡排序



这是一个很常用的方法,它的运行原理是:把每两个数放在一起比较,并把小的数放在前面。



public class 排序 {





public static void main(String[] args) {



  //建立一维数组



//排序开始



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






}





}





}



如果你的代码是这样的,那很抱歉地告诉你,这是错的!



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) {



  //建立一维数组



//排序开始



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






}





}





}



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







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



");



}





}





}









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



举报

相关推荐

0 条评论