面试中可能h会遇到的的几种排序

来源:互联网 发布:pwm控制软件 编辑:程序博客网 时间:2024/05/21 10:26
import java.util.Arrays;
 
/**
 * 排序算法
 *
 */
public class SortDemo {
  publicstaticvoid main(String[] args) {
    int[] ary = {3,1,4,9,2,5,6};
    selectionSort(ary);
    System.out.println(Arrays.toString(ary));
    bubbleSort(ary);
    System.out.println(Arrays.toString(ary));
    insertionSort(ary);    
    System.out.println(Arrays.toString(ary));
  }
  /** 插入式排序 */
  publicstaticvoid insertionSort(int[] ary){
    inti,j,k;
    for(i=1; i<ary.length; i++){
      k = ary[i];//取出
      //查找位置
      for(j=i-1; j>=0&& k<ary[j]; j--){
        ary[j+1]=ary[j];//向后移动元素
      }
      ary[j+1]=k;//插入
    }
  }
  /** 冒泡排序 */
  publicstaticvoid bubbleSort(int[] ary){
    for(inti=0; i<ary.length-1; i++){
      for(intj=0; j<ary.length-i-1; j++){
        if(ary[j]>ary[j+1]){
          intt=ary[j];ary[j]=ary[j+1];ary[j+1]=t;
        }
      }
    }
  }
   
  /** 选择排序: 每轮选择一个最小的放到前面 */
  publicstaticvoid selectionSort(int[] ary){
    for(inti=0; i<ary.length-1; i++){
      for(intj=i+1; j<ary.length; j++){
        if(ary[i]>ary[j]){
          intt=ary[i];ary[i]=ary[j];ary[j]=t;
        }
      }
    }
  }
}
0 0