当前位置:编程学习 > C/C++ >>

C++快速排序II(另一种快速排序)

 

                                                                                                                                                                                     另一种C++快速排序

// 快速排序II.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include<iostream>

#define N 100

using namespace std;

double a[N];

int qartition(double *a,int f,int t)

{

    double x = a[t];

  int i = f-1,j=f;

  while(j<t)

  {

   if(a[j]<=x)

   {

    i++;

    double temp = a[i];

    a[i]=a[j];

    a[j]=temp;

   }

   j++;

  }

  double temp = a[t];

  a[t]=a[i+1];

  a[i+1]=temp;

  return i+1;

}

void fast_sortII(double *a,int begin,int end)

{

   if(begin<end)

   {

    int q  = qartition(a,begin,end);

    fast_sortII(a,begin,q-1);

    fast_sortII(a,q+1,end);

   }

}

 

int _tmain(int argc, _TCHAR* argv[])

{

  int cases;

    cout<<"请输入需要排序的案例个数:"<<endl;

    cin>>cases;

    while(cases--)

    {

        memset(a,0.0,sizeof(a));

        int n;

        cout<<"请输入需要排序的元素的个数:"<<endl;

        cin>>n;

        cout<<"请输入需要排序的元素:"<<endl;

        int i = 0;

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

        {

              cin>>a[i];

        }

        cout<<"排序前:"<<endl;

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

       {

              cout<<a[i]<<" ";

       }

       cout<<endl;

       fast_sortII(a,0,n-1);

       cout<<"排序后:"<<endl;

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

       {

              cout<<a[i]<<" ";

       }

      cout<<endl;

   }

   system("pause");

 return 0;

}

 

 

摘自 heyongluoyao8的专栏

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,