Java中一维数组的排序方式

来源:互联网 发布:淘宝店铺出售0 编辑:程序博客网 时间:2024/06/01 16:19

  我们知道数组中是固定数量的同类型数据的组合,那么既然是同中类型,就可以进行排序。以下我们将介绍几种常见的数组的排序方式。

  int[] scores = new int[]{3,5,6,58,4,2,96,17}

  一 冒泡排序法。将相邻的元素比较,满足条件就交换位置。每完成一轮循环,将最大或者最小值放于第一位。剩下循环将剩下的位置依次存取。

  两层嵌套for循环,第一层for表示有几轮比较。第二层for循环表示每轮比较几次。

  for(int i =0;i<scores.length-1;i++){   -- -- 代表循环几轮

      for(int j=i+1;j<scores.length){  --  --代表每轮循环几次

         if(scores[i]<scores[j]){

            int temp = scores[i];

            scores[i] = scores[j];

            scores[j] = temp;

         }

      }

  }

  二是选择排序法,选择的是位置。选择排序法是先将最大或者最小的那个元素的下标找出来,然后再和第一个位置的元素进行交换。之后第二个位置,第三个位置,依次进行。

  for(int i =0;i<scores.length-1;i++){   -- -- 代表循环几轮

      int min = i ;

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

          if(scores[min]>scores[j]){

             min=j;

          }

      }

      if(min!=i){

          int temp = scores[i];

          scores[i] = scores[min];

          scores[min] = temp;

      }

  }

  三是插入排序法。此方法将n个待排序的数组元素看成了一个有序表和一个无序表,开始的时候有序表只有一个值,无序表含有n-1个元素,排序过程中每次从无序表中取出一个元素,将这个元素依次和有序表中的元素相比较,然后插入到有序表中适当的位置,使之成为新的有序表。

  for(int i =1;i<scores.length;i++){   -- -- 代表循环几轮

    for(int j = i ; j<scores.length;j--){

      if(scores[j]<scores[j-1]){

         int temp = scores[j];

          scores[j] = scores[j-1];

          scores[j-1] = temp;

      }

    }

  }

  四是用Arrays类的静态方法sort()来进行排序。

  Arrays.sort(scores)--默认按照从小到大的顺序排序。

 

 

 

 

原创粉丝点击