首页 > 开发 > JAVA > 正文

Java--------数组排序

2016-05-18 18:57:06  来源:慕课网
  Java数组的三种排序方法
1.插入排序:
  public class InsertSortDemo {
public static void main(String[] args) { // TODO Auto-generated method stub int[] arr={12,9,33,45,33,21,8,0,66,83,38}; for(int i=1;i<arr.length;i++) { for(int j=0;j<=i-1;j++) { if(arr[j]>arr[i]) //说明当前元素比要插入的元素大,则在该位置插入元素 { //首先把要插入的元素保存下来,否则移动完,元素就没有了。 int temp = arr[i]; //从插入的位置开始,向后移动元素 for(int k=i;k>=j+1;k--) //一定要从后往前移动,否则元素会丢失。 { arr[k]=arr[k-1]; } arr[j]=temp;//插入元素。 } } } System.out.println("--------排序之后----------"); for(int i=0;i<arr.length;i++) { System.out.print(arr[i]+" "); }}  }
  2.冒泡排序:
//冒泡排序算法,属于交换排序的一种
public class PopSortDemo {
public static void main(String[] args) { // TODO Auto-generated method stub int[] arr={12,9,33,45,33,21,8,0,66,83,38}; for(int i=arr.length-2;i>=0;i--) { for(int j=0;j<=i;j++) { if(arr[j]>arr[j+1])//左边比右边大 { int temp; temp = arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } System.out.println("-----排序之后--------"); for(int i=0;i<arr.length;i++) { System.out.print(arr[i]+" "); }}  }
  3.选择排序:
public class SelectedSortDemo {
public static void main(String[] args) { int[] arr={12,9,33,45,33,21,8,0,66,83,38}; int pos;//最小元素的下标; int min;//保存最小元素 for(int i=0;i<arr.length;i++) { pos=i; //先让最小元素下标等于i; min = arr[pos]; for(int j=i+1;j<arr.length;j++) { if(arr[j]<min) //说明找到一个更小的元素 { min = arr[j]; pos = j; //记住下标; } } //交换元素 if(pos!=i)//如果找到的最小下标不是第一个下标 { int temp; temp = arr[i]; arr[i] = arr[pos]; arr[pos] = temp; } } System.out.println("-------排序之后-------"); for(int i=0;i<arr.length;i++) { System.out.print(arr[i]+" "); }}  }