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;
    }

  • 相关阅读:
    Feature分支
    Bug分支
    分支管理策略
    解决冲突
    创建与合并分支
    分支管理
    Java并发与多线程教程(1)
    Java Thread(线程)案例详解sleep和wait的区别
    Spring在Thread中注入Bean无效的解决方式
    浅谈Java中的hashcode方法
  • 原文地址:https://www.cnblogs.com/hqu-ye/p/4277020.html
Copyright © 2011-2022 走看看