zoukankan      html  css  js  c++  java
  • 自己动手写算法.Sort.QuickSort

    Quick Sort Algorithm

    Quick sort uses divide-conquer-combine stratage to sort array in place.

    1. namespace
    2. {
    3.     int gSize = 0;
    4.     int partation(int arr[], int nStart, int nEnd)
    5.     {
    6.         int pivot = arr[nEnd];
    7.         int pos = nStart - 1;
    8.         for(int i=nStart; i<nEnd; ++i)
    9.         {
    10.             if( arr[i] < pivot )
    11.             {
    12.                 ++pos;
    13.                 std::swap(arr[i], arr[pos]);
    14.             }
    15.         }
    16.         std::swap(arr[pos+1], arr[nEnd]);
    17.         return pos+1;
    18.     }
    19.     void quickSort(int arr[], int nStart, int nEnd)
    20.     {
    21.         ALog::print(arr, gSize);
    22.         if( nStart < nEnd )
    23.         {
    24.             int nPos = partation(arr, nStart, nEnd);
    25.             quickSort(arr, nStart, nPos-1);
    26.             quickSort(arr, nPos+1, nEnd);
    27.         }
    28.     }
    29. }
    30. /*
    31. Divide-Conquer-Combine
    32. */
    33. void SortQuick::sort(int arr[], const int nSize)
    34. {
    35.     ALog::print(_T("# quick Sort: "));
    36.     ALog::print(arr, nSize);
    37.     gSize = nSize;
    38.     quickSort(arr, 0, nSize-1);
    39. }
  • 相关阅读:
    《构建之法》读书笔记六
    《构建之法》读书笔记五
    《构建之法》读书笔记四
    《构建之法》读书笔记三
    《构建之法》读书笔记二
    《构建之法》读书笔记一
    开发mis系统需要的技术
    java异常处理
    多态
    动手动脑6
  • 原文地址:https://www.cnblogs.com/aiwz/p/6333129.html
Copyright © 2011-2022 走看看