Java 数组排序三种方法

排序算法

    Java程序中,排序算法有很多种,此次给大家介绍的是类排序方法、冒泡排序方法和直接排序方法。此为个人收集整理,仅供大家参考!

1.类排序方法

    Arrays是Java中提供的一个类,而sort( )是该类的一个方法,将数组放在sort( )括号中,就可完成对该数组的排序(升序)了。

package paixu;

import java.util.Arrays;

publicclass PaiXu{

   publicstaticvoid main(String[] args) {

        int[] array = {63,4,25,1,3,16};

        Arrays.sort(array);           //对数组进行升序排序

        for (int i : array) {         //遍历数组

            System.out.print(i+" ");  //输出升序排序后的元素

        }

   }

}

显示结果为:1 3 4 16 25 63

2.冒泡排序法

    冒泡排序法的基本思想是对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把大的元素称到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡从底部上升到顶部。

package paixu;

import java.util.Arrays;

publicclass PaiXu{

   publicstaticvoid main(String[] args) {

       int[] array = {63,4,25,1,3,16};

           for (int i = 1; i < array.length; i++) {

               for (int j = 0; j < array.length-i; j++) {

                   if(array[j]>array[j+1]){

                   int temp = array[j];//把第一个元素值保存到临时变量中

                   array[j] = array[j+1];//把第二个元素值保存到第一个元素单元中

                   array[j+1] = temp;   //把临时变量(也就是第一个元素原值)保存到第二个元素中

                   }

               }

           }

           for (int i : array) {           //遍历数组

               System.out.print(i+" ");    //输出冒泡排序后的数组元素

           } 
   }  

}

 显示结果:1 3 4 16 25 63

3.直接选择

    直接选择排序的基本思想是将指定排序位置与其他数组元素分别对比,如果满足条件就交换元素值,注意这里区别冒泡排序,不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换(如从最后一个元素开始排序),这样排序好的位置逐渐扩大,最后整个数组都成为已排序好的格式。

package paixu;

import java.util.Arrays;

publicclass PaiXu{

   publicstaticvoid main(String[] args) {

       int[] array = {63,4,25,1,3,16};

          int index;                             

          for (int i = 1; i < array.length; i++) {

             index = 0;

             for (int j = 0; j <= array.length-i; j++) {

                 if(array[j]>array[index]){

                    index = j;

                 }

             }

          //交换在位置array.length-i和index(最大值)上的两个数

          int temp = array[array.length-i];//把第一个元素值保存到临时变量中

          array[array.length-i] = array[index];//把第二个元素值保存到第一个元素单元中

          array[index] = temp;//把临时变量也就是第一个元素值保存到第二个元素单元中

          }

          for (int i : array) {           //遍历数组

             System.out.print(i+" ");    //输出直接排序后的数组元素

          } 
   }  

}

显示结果:1 3 4 16 25 63

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值