首页 > 其他 > 详细

快速排序算法

时间:2014-03-25 23:07:25      阅读:475      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
void swap(void *v[], int a, int b)
{
    void* tmp;
    tmp = v[a];
    v[a]=v[b];
    v[b]=tmp;
}

/* qsort: sort v[left]...v[right] into increasing order */
void qsort(void *v[], int left, int right, int (*comp)(void *, void *))
{
  int i, last;
  if (left >= right) /* do nothing if array contains */
    return;
  /* fewer than two elements */
  swap(v, left, (left + right)/2);
  last = left;
  for (i = left+1; i <= right; ++i )
  {
    if ((*comp)(v[i], v[left]) < 0)
    {
      if( i == last ) ++last;
else swap(v,
++last, i);
    }
  }
  swap(v, left, last);   qsort(v, left, last
-1, comp);   qsort(v, last+1, right, comp); }
bubuko.com,布布扣

快速排序算法,布布扣,bubuko.com

快速排序算法

原文:http://www.cnblogs.com/feika/p/3623882.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!