快速排序

简介: 快速排序
public class QuickSort 
{
  public static void main(String args[])
  {
    int a[] = {10,5,10,2};
    System.out.println("this is quciksort:");
    QuickSort(a, 0, a.length - 1);
    output(a);
  }
  public static void output(int a[])//输出
  {
    int i;
    for(i = 0; i < a.length; i++)
    {
      System.out.print(a[i] + " ");
    }
    System.out.println();
  }
  public static void QuickSort(int a[], int low, int high)
  {
    if(low >= high)
    {
      return;
    }
    int l = low;
    int h = high;
    int now = a[low];//设置哨兵
    while(l < h)
    {
      while(l < h && a[h] >= now)//右比较
      {
        h--;
      }
      while(l < h && a[l] <= now)//左比较
      {
        l++;
      }
      if(l < h)//交换
      {
        int temp = a[h];
        a[h] = a[l];
        a[l] = temp;
      } 
    }
    int temp = a[l];//换最后的一个值
    a[l] = now;
    a[low] = temp;
    QuickSort(a, low, l - 1);//左递归
    QuickSort(a, h + 1, high);//右 
  }
}
相关文章
快速排序(超超详细,因为自己也不是很会)
快速排序(超超详细,因为自己也不是很会)
|
7月前
快速排序
快速排序
26 0
|
7月前
|
搜索推荐 C++
C++快速排序的实现
C++快速排序的实现
|
C++
C++快速排序
C++快速排序
60 1
|
人工智能 搜索推荐
【快速排序】
【快速排序】
|
算法 搜索推荐
快速排序到底有多快
快速排序到底有多快
91 0
重新理解快速排序
重新理解快速排序
57 0
|
机器学习/深度学习
785. 快速排序
785. 快速排序
70 0