本文由广州疯狂软件java培训分享:

  import java.util.*;

  public class SortingTest {

  public static void main(String[] args){

  int[] arrNoSorted = {89,56,32,15,46,69,54};

  // 在进行排列之前先将数组中的值依次显示出来。

  System.out.print("The array before sorting \n -> [\'");

  for(int x=0;x<ARRNOSORTED.LENGTH;X++){< p>

  if(x!=arrNoSorted.length-1){

  System.out.print(arrNoSorted[x]+"\', '");

  }else{

  System.out.print(arrNoSorted[x]+"\']");

  }

  };

  System.out.print("\n\n");

  // 对数组进行排序。

  bubbleSorting(arrNoSorted);

  // 将排序后数组的值依次显示出来。

  System.out.print("The array was sorted \n -> [\'");

  for(int x=0;x<ARRNOSORTED.LENGTH;X++){< p>

  if(x!=arrNoSorted.length-1){

  System.out.print(arrNoSorted[x]+"\', '");

  }else{

  System.out.print(arrNoSorted[x]+"\']");

  }

  };

  System.out.print("\n\n");

  // 使用JAVA自带的类进行排序。

  Arrays.sort(arrNoSorted);

  System.out.print("Array sorted by JAVA \n -> [\'");

  for(int x=0;x<ARRNOSORTED.LENGTH;X++){< p>

  if(x!=arrNoSorted.length-1){

  System.out.print(arrNoSorted[x]+"\', '");

  }else{

  System.out.print(arrNoSorted[x]+"\']");

  }

  };

  }

  /* 将能够实现排序的方法单独写出来,为了能够重用。

  * 能够实现数组排列的算法有很多种,

  * 更多的种类可以在百度上查一下。

  * 选择排序-方法1:

  * (1)将数据第一个位置的值与之后每个位置的值进行比较,需要注意最后一个位置的值不需要与任何值进行比较,因此在数据长度的后面-1。

  * (2)如果第二个位置的值小于第一个位置的值,那么就要对其进行位置的交换。

  * (在这个算法当中,每一次比较了之后,如果第二个位置的值小于第一个位置的值的话,就需要进行一次位置的交换。可以参考在选择排序-方法2中如何避免。)

  */

  public static void selectSorting(int[] arrToSorting){

  for (int i = 0; i < arrToSorting.length-1; i++) {

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

  if (arrToSorting[j]<>

  swap(arrToSorting,i,j);

  }

  }

  }

  }

  /* 选择排序-方法2

  * 与方法1不同的是,使用了利用临时变量来在数组中找最小值的思想。

  * (1)先声明了一个变量,用来存放比较之后最小的值。再声明一个变量,用来记录最小值所在的数组中位置的角标。

  * (2)遍历整个数组,最后早出数组中的最小值。

  * (3)如果第一个位置的数与所找出的最小值不同,则需要将它与最小值进行交换,此时就用使用到之前声明过的最小值的角标。

  */

  public static void selectSorting2(int[] arrToSorting) {

  for (int i = 0; i < arrToSorting.length-1; i++) {

  int minValue = arrToSorting[i];//声明存在最小值的变量

  int minValueIndex = i;//声明遍历到的数组中最小值的角标,为了在遍历之后的swap

  //遍历从该位置开始的整个数组。寻找数组中的最小值。

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

  if (minValue > arrToSorting[j]) {

  minValue = arrToSorting[j];

  minValueIndex = j;

  }

  }

  //将遍历之后所获得的最小值的角标与i值进行比较,如果一样的话则说明该位置上的值已经是最小值,

  //如果不一样的话,说明遍历后的最小值比该位置上的值要小,因此就需要对其位置进行交换。

  if (i!=minValueIndex) {

  swap(arrToSorting,i,minValueIndex);

  }

  }

  }

  /* 气泡排序(Bubble Sort)

  * (1)气派排序的核心是将通过不断的比较将最大值推到数组的后面,反复进行这样的过程,就能够实现排序。

  * (2)需要注意的是循环的次数,尤其是内循环时不过不-1的话,会出现overbound错误。

  */

  public static void bubbleSorting(int[] arrToSorting) {

  for (int i = 0; i < arrToSorting.length-1; i++) {

  for (int j = 0; j < arrToSorting.length-1; j++) {

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

  swap(arrToSorting,j,j+1);

  }

  }

  }

  }

  /* 实现数据位置交换的方法。

  * 注意:在数据中位置交换的时候,需要3个参数,分别是:数组的名字,要进行交换的两个角标。

  */

  public static void swap(int[] arrToSwap,int a, int b){

  int temp = arrToSwap[a];

  arrToSwap[a]=arrToSwap[b];

  arrToSwap[b]=temp;

  }

  }

  学IT技术就学Java技术,疯狂软件Java培训机构,打造国内高级Java人才。

  疯狂软件Java培训优势

  1. Java是世界第一大编程语言,市场占有率达20%。

  2.广州最专业Java培训机构,多年教学经验。

  3.学员技术牛就业率最好,就业薪资都在5000以上。

  4.疯狂软件Java培训课程以项目实战带动教学,上课打破传统课堂模式,以实训项目贯穿教学,带领学生一起做企业真实项目。

  疯狂软件中心Java培训、iOS培训打造名企技术经理,成为中国软件产业的中流砥柱:全真企业需求,项目小组管理,大量实操项目的疯狂训练,企业全真案例教学,学成至少相当于两年工作经验“全真项目”教学,高强度的狂热训练,带领学生走近编程,感受编程,热爱编程,学完后产生凤凰涅槃般的重生。 “全真企业环境”模拟:以项目组形式管理,每个程序员(学员)对项目组长负责,组长向项目经理(老师)负责。以版本控制工具为引导,充分激发每个程序员对编程的激情 四个半月掌握近8~10万代码量,达到技术经理的代码掌握量。