quicksort.java

来自「包括冒泡排序」· Java 代码 · 共 56 行

JAVA
56
字号
/**
 * 实现快速排序的算法
 * @author jok
 * @version 1.0
 * 
 */

package cn.com.csu.algorithm;

public class QuickSort {


  public static void main(String[] args) {
    int[] arr = {6,5,4,3,2,1};
    QuickSort qs = new QuickSort();
    qs.quickSort(arr,0,arr.length-1);
    for(int i=0;i<arr.length;i++) {
      System.out.print(arr[i]);
    }
  }
  
  private int partion(int[] a,int begin,int end) {
    int p = a[begin];
    int i = begin+1,j=end,temp;
    while(i<j) {
      while(i<end && a[i]<p ) {
        i++;
      }
      while(j>begin && a[j]>p) {
        j--;
      }
      if(i<j) {
        temp=a[i];
        a[i]=a[j];
        a[j]=temp;
      }
      
    }
    temp=a[begin];
    a[begin]=a[j];
    a[j]=temp;
    return j;
  }
  
  private void quickSort(int[] a,int begin,int end) {
      int s=this.partion(a,begin,end);
      if(s-begin >1) {
        quickSort(a,begin,s-1);
      }
      if(end- s >1) {
        quickSort(a,s+1, end);
      }
  }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?