zoukankan      html  css  js  c++  java
  • C++quickSort

    void QuickSort1(int *s,int left,int right)
    {
    int i,j,t,pivot;
    if(left>right)
    return;
    if(left<right)
    {
    pivot = s[left]; //基准数
    i=left;
    j=right;

    while(i!=j)
    {
    while(i<j &&s[j]>=pivot) j--; //从右向左找第一个比基准数小的数
    while(i<j &&s[i]<=pivot) i++; //从左向右找第一个比基准数大的数
    if(i<j) //交换两数
    {
    t=s[i];
    s[i]=s[j];
    s[j]=t;
    }
    }
    s[left] = s[i]; //基准数归位
    s[i] = pivot;

    QuickSort1(s,left,i-1);
    QuickSort1(s,i+1,right);
    }

    }

    void QuickSort2(int *s,int left,int right)
    {
    int i,j,pivot;
    if(left>right)
    return;
    if(left<right)
    {
    pivot = s[left]; //基准数
    i=left;
    j=right;

    while(i!=j)
    {
    while(i<j &&s[j]>=pivot) j--; //从右向左找第一个比基准数小的数
    if(i<j)
    {
    s[i]=s[j];
    i++;
    }
    while(i<j &&s[i]<=pivot) i++; //从左向右找第一个比基准数大的数
    if(i<j)
    {
    s[j]=s[i];
    j--;
    }
    }

    s[i] = pivot; //基准数归位

    QuickSort2(s,left,i-1);
    QuickSort2(s,i+1,right);
    }

    }

    int main()
    {
    int a[10] = {1,6,7,0,2,17,13,35,19,23};
    //QuickSort1(a,0,9);
    QuickSort2(a,0,9);
    int i=0;
    for(;i<10;i++)
    printf("%d ",a[i]);
    return 0;
    }

  • 相关阅读:
    web监听器
    闭包
    函数表达式
    android 反向暴力取私有参数 (转载)
    html/weui slider
    自定义取值范围的EditText(记录)
    Android 基于OpenGL ES2.0 的CircleProgressBar
    Android 二维码扫描
    android 反编译网址记录
    Android Opengl ES & Jni 使用
  • 原文地址:https://www.cnblogs.com/hqu-ye/p/4277020.html
Copyright © 2011-2022 走看看