您的位置:首页 > 编程语言 > C语言/C++

c++快速排序算法的实现

2013-03-14 09:36 344 查看
 

           //快速排序算法的实现,希望对初学者有所帮助

           #include <stdio.h>

           #include <iostream>

using namespace ::std;

int qpartition(int number[],int low,int high)

{

      int pivotvalue;

      pivotvalue = number[low];

      while(low < high)

      {

            while((low < high) && number[high] >= pivotvalue)--high;

            number[low] = number[high];

            while((low < high) && number[++low] <= pivotvalue);

            number[high--] = number[low];
     }

     number[low] = pivotvalue;

     return low;
}

void Qsort(int number[],int s,int t)

{

     int position;

     if (s < t)

     {

         position = qpartition(number,s,t);

         Qsort(number,s,position - 1);

         Qsort(number,position + 1,t);

     }
}

int main()

{

     int *number;

     int i=0,size;

    cout<<"请输入待排序个数:"<<endl;

    cin>>size;

    number = (int *)malloc(size * sizeof(int));

    while(i < size)

    {

        cin>>number[i++];

    }

    Qsort(number,0,size - 1);

    for (i=0;i<size;i++)

   {

       cout<<number[i];

   }

   free(number);

   return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: