Java 数组排序三种方法

来源:互联网 发布:李炯浩被诱拐事件 知乎 编辑:程序博客网 时间:2024/04/30 11:09

排序算法

 

    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-iindex(最大值)上的两个数

          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