java中几种排序

来源:互联网 发布:京东用哪个软件返利 编辑:程序博客网 时间:2024/06/05 04:00

Java中的几种排序方法:冒泡排序,选择排序,插入排序和快速排序
1.冒泡。所谓冒泡就是把一个数组中相邻两个数进行循环比较。(个人理解)
 如:

//冒泡法
 public static int[] maopao(int [] a){
  for(int i=0;i<a.length-1;i++){
   for(int j=0;j<a.length-1-i;j++){
    if(a[j]<a[j+1]){
     int temp=a[j];
     a[j]=a[j+1];
     a[j+1]=temp;
    }
   }
     }
  return a;
 }

//测试

public static void main(String[] args) {
  int []b={9,5,8,2,7,3,6,4,1};
  int []arr1=maopao(b);
  for(int i=0;i<arr1.length;i++){
   System.out.print(arr1[i]);
  }
 }

1.选择排序。选择排序是把数组中最小的那个数的坐标和第一个数进行交换。(个人理解)

//选择排序(1)——得到数组中最小数的坐标
 public static int selectMin(int[] arr,int index){
  int min=arr[index];
  int mIndex=index;
  for(int i=index+1;i<arr.length;i++){
   if(arr[i]<min){
    min=arr[i];
    mIndex=i;
   }
  }
  return mIndex;
 }
 
 //选择排序(2)——两个数进行交换
 public static void swap(int[] arr,int x,int y){
  int temp=arr[x];
  arr[x]=arr[y];
  arr[y]=temp;
 }
//测试

public static void main(String[] args) {
  int[] arr={9,5,8,2,7,3,6,4,1};
  //排序
  for(int i=0;i<arr.length-1;i++){
   int index=selectMin(arr,i);
   swap(arr,i,index);
  }
  System.out.println();
  for(int i=0;i<arr.length;i++){
   System.out.print(arr[i]);
  }

 }

1.然后是插入排序。及新建一个数组,将需要排序的数组的第一个元素先放到新数组中去,然后把剩下的元素有序的、依次插入到新数组中去

方法:

public static void main(String[] args) {
   int[] arr1={3,2,1,5,4,8,6,9,7};
   int[] arr2=new int[arr1.length];
   arr2[0]=arr1[0];
   for(int i=0;i<arr1.length;i++){
    System.out.print(arr1[i]);
   }
   for(int i=1;i<arr1.length;i++){
    int j=i;
    arr2[i]=arr1[i];
    if(arr2[i]<arr2[i-1]){
     while(i>0){
      if(arr2[i]<arr2[i-1]){
       int temp=arr2[i];
       arr2[i]=arr2[i-1];
       arr2[i-1]=temp;
       i--;
      }else break;
     }
    }
    i=j; 
   }
   for(int i=0;i<arr2.length;i++){
    System.out.print(arr2[i]);
   }  
  }

原创粉丝点击